Paypal 从 php 中的支付密钥获取交易详情
Posted
技术标签:
【中文标题】Paypal 从 php 中的支付密钥获取交易详情【英文标题】:Paypal get transaction details from pay key in php 【发布时间】:2014-11-27 08:57:18 【问题描述】:我从 ios sdk 获得支付密钥,我需要通过支付密钥检查交易状态。
我使用了适用于 php 的 PayPal Merchant SDK。其中我可以从交易 ID 中获取交易详情,但不能从支付密钥中获取。
我也检查了这个 Paypal Adaptive payment Pay key validation received from IOS 但 IPN 选项,但它在我的情况下没有用。
但我的要求是,我有 ios 应用程序,其中用户将金额存入贝宝。然后对于服务器端,我需要验证事务状态,然后执行进一步的操作。
但我无法从支付密钥中找到交易详情。
有人做过吗??谢谢。
【问题讨论】:
您检查过PaymentDetails API 吗? 感谢@AndrewAngell 我实现了这个并且它的工作正常。 【参考方案1】:终于找到了从pay-key获取交易明细的方法
首先使用您的 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 中删除沙盒工作。
【讨论】:
我成功获得了访问令牌。但是当我得到交易细节时,下面的 json 返回。"name":"INVALID_RESOURCE_ID","message":"The requested resource ID was not found","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#INVALID_RESOURCE_ID","debug_id":"1b6ab351d8ce8"
你能告诉我为什么会这样吗?
@HassanRaza,我遇到了同样的问题,谁能帮忙解决这个问题..以上是关于Paypal 从 php 中的支付密钥获取交易详情的主要内容,如果未能解决你的问题,请参考以下文章
有啥方法可以在 php 的返回页面中从 PayPal 获取交易详细信息?