【问题标题】:Paypal get transaction details from pay key in phpPaypal 从 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 我实现了这个并且它的工作正常。

标签: php paypal transactions


【解决方案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,我遇到了同样的问题,谁能帮忙解决这个问题..
猜你喜欢
  • 2016-03-17
  • 1970-01-01
  • 2013-09-06
  • 2014-07-20
  • 2016-09-12
  • 2018-12-20
  • 2013-04-30
  • 1970-01-01
  • 2021-05-30
相关资源
最近更新 更多