2014-10-02 2 views
0

Я получаю pay-ключ от sys-сервера IOS, мне нужно проверить статус транзакции с этой платной ключа.Paypal получает информацию о транзакции с помощью ключа оплаты в php

Я использовал PayPal Merchant SDK для PHP. в котором я могу получить данные транзакции из идентификатора транзакции, но не с платного ключа.

Я также проверяю на это Paypal Adaptive payment Pay key validation received from IOS Но вариант IPN, но его не полезно в моем случае.

Но мое требование состоит в том, что у меня есть приложение ios, в котором сумма депозита пользователя на PayPal. то для серверной части мне нужно проверить статус транзакции, а затем выполнить дальнейшие операции.

Но я не могу найти информацию о транзакции с помощью платного ключа.

Кто-нибудь это сделал? Благодарю.

+0

Вы проверили API [PaymentDetails] (https://developer.paypal.com/webapps/developer/docs/classic/api/adaptive-payments/PaymentDetails_API_Operation/)? –

+0

Спасибо @AndrewAngell Я реализовал это и его работу отлично. –

ответ

2

Наконец нашел способ получить детали сделки с предоплатой ключа

Сначала получите доступ токенов с помощью вас ClientId и ClientSecret

$ch = curl_init(); 
      $clientId = PAYPAL_CLIENT_ID; //client Id 
      $secret = PAYPAL_CLIENT_SECRET; client secrete key 
      curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/oauth2/token"); 
      curl_setopt($ch, CURLOPT_HEADER, false); 
      curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
      curl_setopt($ch, CURLOPT_POST, true); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
      curl_setopt($ch, CURLOPT_USERPWD, $clientId . ":" . $secret); 
      curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials"); 
      $result = curl_exec($ch); 
      $accessToken = null; 
      if (empty($result)) 
       die('invalid access token'); 
      else { 
       $json = json_decode($result); 
       $accessToken = $json->access_token; 
      } 
      curl_close($ch); 

После получения маркера доступа, я получаю детали сделки, используя следующий код

$curl = curl_init("https://api.sandbox.paypal.com/v1/payments/payment/<paykey>"); 
      curl_setopt($curl, CURLOPT_POST, false); 
      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
      curl_setopt($curl, CURLOPT_HEADER, false); 
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
      curl_setopt($curl, CURLOPT_HTTPHEADER, array(
       'Authorization: Bearer ' . $accessToken, 
       'Accept: application/json', 
       'Content-Type: application/json' 
      )); 
      $response = curl_exec($curl); 
      $result = json_decode($response); 

С этим мы можем подтвердить транзакцию.

удалять песочницу из url, когда вы используете ее для жизни.

+0

Я успешно получаю токен доступа. но когда я получаю детали транзакции, возвращаем следующий json. '{" name ":" INVALID_RESOURCE_ID "," message ":" Запрошенный идентификатор ресурса не найден "," information_link ":" https://developer.paypal.com/webapps/developer/docs/api/#INVALID_RESOURCE_ID "," debug_id ":" 1b6ab351d8ce8 "}' Можете ли вы сказать мне, почему это происходит. –

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