Как получить доступ к Recurly API с помощью AJAX?

Я использую вызов jquery ajax для конечной точки рекурсивного API, но получаю ошибки перекрестного происхождения. Насколько я понимаю, это связано с тем, что Recurly возвращает результаты только в виде XML... когда я использую JSONP для обхода ошибок перекрестного происхождения, я получаю сообщение об ошибке, потому что он получает данные XML, но ожидает JSONP. Довольно очевидно. Но я пытаюсь понять, как вообще можно использовать этот API через вызовы AJAX. Мне удалось получить доступ к API с помощью PHP, но, к сожалению, для этого проекта я не могу' не использовать какой-либо код на стороне клиента.

Даже если я найду какое-то решение среднего кода для получения XML и преобразования его в JSON для принятия моей стороной, мне нужно использовать API для запросов POST (создание учетных записей, подписки и т. д.), поэтому я хотел бы понять как правильно использовать API.

Вот пример моего кода:

$.ajax({
  url: "http://[DOMAIN].recurly.com/v2/accounts",
  beforeSend: function(xhr) { 
    xhr.setRequestHeader("Authorization", "Basic " + window.btoa("[API KEY]")); 
  },
  crossDomain: true,
  type: "GET",
  accepts: "application/xml",
  dataType: "application/xml; charset=utf-8",
  success: function (data) {
    console.log("SUCCESS:", data);
  },
  error: function(e){
    console.log("ERROR:", e);
  }});

У кого-нибудь с опытом работы с Recurly API есть какие-либо советы/советы?


person juliusav    schedule 08.10.2014    source источник


Ответы (2)


Из https://docs.recurly.com/api/recurlyjs/jsonp_endpoints.

 $.ajax({
 dataType: 'jsonp',
 url: 'https://{subdomain}.recurly.com/jsonp/{subdomain}/plans/{plan_code}',
 data: {
currency: 'USD',
 },
 success: function (data) {
 // do stuff
 },
}
person Beckafly    schedule 09.10.2014
comment
jsonp работает для конечных точек, указанных на этой конкретной странице, но при использовании для конечной точки в моем примере (http://[DOMAIN].recurly.com/v2/accounts), который я получил из документации Recurly API (docs.recurly.com/api/accounts), я получаю результаты только в формате XML. Спасибо за вашу помощь. Но я признаю, что теперь я еще больше запутался, когда прочитал, что они возвращают только результаты XML (docs.recurly.com/api/basics/authentication). - person juliusav; 09.10.2014

Вы не должны не использовать V2 API из браузера. Это может привести к раскрытию вашего закрытого ключа API. Если у кого-то есть ваш API-ключ, он может звонить клиентам, взимать плату, изменять подписки и создавать всевозможные проблемы.

Посмотрите на конечные точки JSONP, с которыми связан Byaxy.

person drewish    schedule 13.01.2015