2012-03-20 4 views
0

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

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

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

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

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

$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

первая вещь - вот исправленный код - в основном у вас есть пробелы в вашей базе URL и вместо urlencoding параметров, вы 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 вы хотите использовать), мы можем опубликовать обновленную таблицу.

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

+0

Praveen благодарит за деталический ответ. Это сработало отлично. Я бы определенно хотел, чтобы элемент конфигурации мог использовать активную учетную запись. Это что-то, что вы можете представить относительно быстро? –

+0

Praveen все еще ждет этого, любое обновление? –

0

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

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

Если вы нашли какие-либо вопросы, пожалуйста, файл его на GitHub, поэтому мы будем получать уведомления.

Thanks

+0

здесь, где Сидни рассказал о том, как использовать обновленную таблицу с env: https://www.x.com/developers/community/blogs/sidneyallen/yql-paypal-transaction-search-updated – Praveen

Смежные вопросы