我从 IOS sdk 获得了 pay-key,我需要从那个 pay-key 检查交易状态。
我使用了 PHP 版 PayPal Merchant SDK。其中我可以从交易 ID 中获取交易详细信息,但不能从支付 key 中获取。
我也检查这个Paypal Adaptive payment Pay key validation received from IOS但是 IPN 选项对我来说没有用。
但我的要求是,我有 ios 应用程序,用户可以在其中向 paypal 存款。然后对于服务器端,我需要验证交易状态,然后执行进一步的操作。
但我无法从 pay-key 中找到交易详情。
有人做过吗?谢谢。
最佳答案
终于找到了通过pay-key获取交易明细的方法
首先使用您的 clientId 和 ClientSecret 获取访问 token
$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);
获取访问 token 后,我使用以下代码获取交易详细信息
$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 中删除沙箱工作。
关于php - Paypal 从 php 中的支付 key 获取交易详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26159653/