Yql и PayPal транзакции - PullRequest
       21

Yql и PayPal транзакции

0 голосов
/ 20 марта 2012

Итак, у меня две проблемы с получением сводки транзакций PayPal с помощью YQL.Во-первых, если я попытаюсь вставить информацию об API своей песочницы в консоль yql, я получу результаты ... иногда.Я подумал, что не стоит беспокоиться об этом, и, возможно, API-интерфейс для песочницы PayPal просто ненадежный, но, безусловно, реальная вещь будет более надежной.

Однако Я не могу понять, как заставить YQL использовать реальный URL-адрес API вместо песочницы. Я буду рад, если только на это ответят.

Вторая проблема - заставить его работать в php.Если я скопирую весь закодированный URL-адрес REST-запроса в нижней части консоли в php и сверну его, то это сработает.(в режиме песочницы конечно).

Однако, если я попытаюсь разбить запрос, передав ему параметры, то строю строку и оборачиваю ее в urlencode () перед скручиванием.Я получаю нулевое значение.

Вот как выглядит код для создания строки.

$yql_base_url = " https://query.yahooapis.com/v1/public/yql ";
$yql_query = "SELECT * from paypal.transactions"
." WHERE APIUsername=$username" 
." AND APIPassword=$password" 
." AND Signature=$signature" 
." AND StartDate='2012-01-00T00:00:00'";

$yql_query_url = $yql_base_url . "?q=" . $yql_query;
$yql_query_url .= "&diagnostics=true&env=store://datatables.org/alltableswithkeys";
$yql_query_url .= "&format=json";
$yql_query_url = urlencode($yql_query_url);

Сбой с или без urlencode ()

Ответы [ 2 ]

2 голосов
/ 21 марта 2012

Во-первых, вот исправленный код - в основном у вас есть пробелы в базовом URL-адресе, и вместо urlen-кодирования параметров вы URL-адрес, кодирующий весь URL-адрес.

    $yql_base_url = "https://query.yahooapis.com/v1/public/yql";
$yql_query = "SELECT * from paypal.transactions"
." WHERE APIUsername='ppalav_1285013097_biz_api1.yahoo.com'" 
." AND APIPassword='1285013102'" 
." AND Signature='AFcWxV21C7fd0v3bYYYRCpSSRl31AeJNr8zWn6wGkU8dNHzEDaF3ZXwz'" 
." AND StartDate='2012-01-00T00:00:00'";

$yql_query_url = $yql_base_url . "?q=" . urlencode($yql_query);
$yql_query_url .= "&diagnostics=true&env=" . urlencode("store://datatables.org/alltableswithkeys");
$yql_query_url .= "&format=json";

echo $yql_query_url;

// Make call with cURL
$session = curl_init($yql_query_url);
curl_setopt($session, CURLOPT_RETURNTRANSFER,true);
$json = curl_exec($session);
// Convert JSON to PHP object 
$phpObj =  json_decode($json);

сейчас, чтобы ответить на другие ваши вопросы: - да, к сожалению, песочница PayPal работает медленно, мы должны были добавить в таблицу более длительные тайм-ауты. - причина, по которой в настоящее время поддерживается только песочница, заключается в том, что мы выпустили ее, чтобы увидеть интерес. Если вас интересует таблица (или конфигурация, в которой указано, какой env вы хотите использовать), мы можем выпустить обновленную таблицу.

спасибо, что попробовали это, кстати, и дайте нам знать, как мы можем улучшить его, чтобы сделать его более полезным. Кстати, вот источник таблиц транзакций PayPal в случае, если вы хотите обратиться к нему или изменить его: https://github.com/paypalx/yql-tables/tree/master/paypal

0 голосов
/ 17 апреля 2012

Мы обновили таблицы YQL и поместили их в наш форк на github. Для Yahoo есть запрос на получение ответа.

https://github.com/paypalx/yql-tables

Если вы обнаружите какие-либо проблемы, отправьте их на github, чтобы мы получили уведомление.

Спасибо

...