Получить все транзакции, используя PayPal API

Я новичок в PayPal API и использую ExpressCheckout для всех платежных операций. Что я хочу, чтобы получить все платежи, полученные транзакции, используя start_time а также end_time так что я буду знать, каков статус этой транзакции.

Целью этого является то, что моя система время от времени знает о состоянии всех платежей.

Я также смущен, если это возможно в песочнице. Если это возможно, пожалуйста, помогите мне.

Я работаю над этим в течение недели, используя язык php. Я перехожу по ссылке в PayPal, но до сих пор не понимаю. https://developer.paypal.com/docs/api/#paging—filtering

Пожалуйста, если у вас есть хороший совет, пожалуйста, помогите мне решить мою проблему.

0

Решение

Ответ @Developer Status ‘- хороший пример, но я бы рекомендовал использовать этот PayPal PHP SDK, конкретно TransactionSearch шаблон, который делает звонок очень простым для вас. Он также обрабатывает все результаты для вас. Здесь вы можете увидеть образец полного результата, включая проанализированные результаты поиска (вам может понадобиться немного прокрутить вниз, чтобы увидеть проанализированные результаты поиска.)

Когда вы просматриваете эти результаты, вам, скорее всего, придется нажимать GetTransactionDetails для каждого, чтобы получить всю необходимую информацию. Опять же, этот шаблон в SDK сделает это очень простым для вас.

Поэтому, если вы загрузите этот SDK, настройте файл конфигурации с вашими собственными учетными данными API, а затем загрузите этот образец / шаблон, и вы сможете настроить его в течение нескольких минут.

Я также рекомендую вам взглянуть на PayPal IPN. Это позволит вам получать обновления в режиме реального времени, когда транзакции попадают в ваш аккаунт, так что вы можете автоматизировать все в режиме реального времени, а не использовать API TransactionSearch через определенные промежутки времени.

3

Другие решения

 # You can put start date and end date here in request for `STARTDATE` AND `ENDDATE` #

<?php
$info = 'USER=[API_USERNAME]'
.'&PWD=[API_PASSWORD]'
.'&SIGNATURE=[API_SIGNATURE]'
.'&METHOD=TransactionSearch'
.'&TRANSACTIONCLASS=RECEIVED'
.'&STARTDATE=2013-01-08T05:38:48Z'
.'&ENDDATE=2013-07-14T05:38:48Z'
.'&VERSION=94';

$curl = curl_init('https://api-3t.paypal.com/nvp');
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_POSTFIELDS,  $info);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_POST, 1);

$result = curl_exec($curl);

# Bust the string up into an array by the ampersand (&)
# You could also use parse_str(), but it would most likely limit out
$result = explode("&", $result);

# Loop through the new array and further bust up each element by the equal sign (=)
# and then create a new array with the left side of the equal sign as the key and the right side of the equal sign as the value
foreach($result as $value){
$value = explode("=", $value);
$temp[$value[0]] = $value[1];
}

# At the time of writing this code, there were 11 different types of responses that were returned for each record
# There may only be 10 records returned, but there will be 110 keys in our array which contain all the different pieces of information for each record
# Now create a 2 dimensional array with all the information for each record together
for($i=0; $i<count($temp)/11; $i++){
$returned_array[$i] = array(
"timestamp"         =    urldecode($result["L_TIMESTAMP".$i]),
"timezone"          =    urldecode($result["L_TIMEZONE".$i]),
"type"              =    urldecode($result["L_TYPE".$i]),
"email"             =    urldecode($result["L_EMAIL".$i]),
"name"              =    urldecode($result["L_NAME".$i]),
"transaction_id"    =    urldecode($result["L_TRANSACTIONID".$i]),
"status"            =    urldecode($result["L_STATUS".$i]),
"amt"               =    urldecode($result["L_AMT".$i]),
"currency_code"     =    urldecode($result["L_CURRENCYCODE".$i]),
"fee_amount"        =    urldecode($result["L_FEEAMT".$i]),
"net_amount"        =    urldecode($result["L_NETAMT".$i]));
}
?>
1

Попробуй это

<?
$info = 'USER=[API_USERNAME]'
.'&PWD=[API_PASSWORD]'
.'&SIGNATURE=[API_SIGNATURE]'
.'&METHOD=TransactionSearch'
.'&TRANSACTIONCLASS=RECEIVED'
.'&STARTDATE=2013-01-08T05:38:48Z'
.'&ENDDATE=2013-07-14T05:38:48Z'
.'&VERSION=94';

$curl = curl_init('https://api-3t.paypal.com/nvp');
curl_setopt($curl, CURLOPT_FAILONERROR, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_POSTFIELDS,  $info);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_POST, 1);

$result = curl_exec($curl);

$result = explode("&", $result);

foreach($result as $value){
$value = explode("=", $value);
$temp[$value[0]] = $value[1];
}


foreach($temp as $k=>$v){
$i++;
preg_match('#^(.*?)([0-9]+)$#is',$k,$str);
$num=$str[2];
$key=preg_replace('#^[A-z]_#','',$str[1]);
if($key!=''){

$new[$num][$key]=urldecode($v);
}

}
print_R($new);

?>
0
По вопросам рекламы [email protected]