Intereting Posts
Php, чтобы заменить @username ссылкой на аккаунт Twitter Как отправить электронное письмо в PHP надежно? Memcached (не memcache) Расширение PHP в Windows Проблемы с добавлением поля в MySQL / PHP с помощью подготовленных операторов Проблема обработки массива textareas, когда они динамически загружаются с помощью jQuery и PHP Это правильный способ уничтожить все данные сеанса в php? Как получить содержимое страницы после перенаправления javascript в php PHP Найдите первую часть почтового индекса в Великобритании, когда полный или часть может быть введена Отменить длительный поиск не может установить post_max_size в laravel 4 Имя PHP / MYSQL Retrieve Name на основе другого критерия Удалить пустые элементы массива Ключ нулевой переменной равен null not error Почему IE7 отклоняет файлы cookie сеанса со страницы в кадре? Как вызвать конструктор родительских классов с его исходными параметрами в PHP

Список транзакций PayPal

Вот настройка:

У меня есть настройка сайта для клиента. Клиент:

  1. Посещение сайта
  2. Входит в основную информацию для наших записей
  3. Выходит на PayPal через кнопку «Купить сейчас»
  4. Делает платеж через PayPal
  5. Возврат на сайт

Я хочу знать, как получить список всех транзакций? У меня есть логин PayPal, а также имя пользователя, пароль и подпись API, но на всю жизнь я не могу найти ни одного места в Интернете, которое дает пример того, как вытащить список транзакций из PayPal через PHP или JQuery / JavaScript / Ajax.

У кого-нибудь есть идеи? Примеры?

Заранее спасибо.

ОБНОВИТЬ:

Я смог разработать решение этого вопроса. См. Мой ответ ниже с кодом и комментариями.

Хорошо, поэтому я наконец смог развить то, что работает. Код размещен ниже со ссылкой на опции API TransactionSearch от PayPal

https://developer.paypal.com/webapps/developer/docs/classic/api/merchant/TransactionSearch_API_Operation_NVP/

<?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($temp["L_TIMESTAMP".$i]), "timezone" => urldecode($temp["L_TIMEZONE".$i]), "type" => urldecode($temp["L_TYPE".$i]), "email" => urldecode($temp["L_EMAIL".$i]), "name" => urldecode($temp["L_NAME".$i]), "transaction_id" => urldecode($temp["L_TRANSACTIONID".$i]), "status" => urldecode($temp["L_STATUS".$i]), "amt" => urldecode($temp["L_AMT".$i]), "currency_code" => urldecode($temp["L_CURRENCYCODE".$i]), "fee_amount" => urldecode($temp["L_FEEAMT".$i]), "net_amount" => urldecode($temp["L_NETAMT".$i])); } ?> 

Кроме того, я придумал этот отличный маленький простой сценарий, чтобы получить более подробную информацию о конкретной транзакции:

https://developer.paypal.com/webapps/developer/docs/classic/api/merchant/GetTransactionDetails_API_Operation_NVP/

 <?php $info = 'USER=[API_USERNAME]' .'&PWD=[API_PASSWORD]' .'&SIGNATURE=[API_SIGNATURE]' .'&VERSION=94' .'&METHOD=GetTransactionDetails' .'&TRANSACTIONID=[TRANSACTION_ID]' .'&STARTDATE=2013-07-08T05:38:48Z' .'&ENDDATE=2013-07-12T05:38:48Z'; $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); parse_str($result, $result); foreach($result as $key => $value){ echo $key.' => '.$value."<BR>"; } ?> 

У них есть TransactionSearch API:

https://developer.paypal.com/webapps/developer/docs/classic/api/merchant/TransactionSearch_API_Operation_NVP/

Я использую my pull по номеру счета, чтобы получить идентификаторы транзакций для возврата.

  <script data-env="sandbox" data-tax="0.00" data-shipping="0.00" data-currency="USD" data-amount="0.00" data-quantity="0" data-name="No Item Selected" data-button="buynow" src="https://www.paypalobjects.com/js/external/paypal-button.min.js?merchant=ben4xfer@gmail.com" async="async"></script> 

Это элемент html, который подключается к API PayPal для совершения транзакции при нажатии кнопки. Не изменяйте свойства data-button , src или async . Полностью удалите узел data-env после того, как вы закончите тестирование (узел data-env предотвращает фактическую загрузку во время тестирования). Измените все другие свойства в соответствии с их именами (например, вы должны изменить data-name на имя продаваемого продукта). Вставьте элемент так же, как и любой другой элемент html (например, <p> ).