Paypal从php中的pay键获取交易详情

时间:2014-10-02 11:17:50

标签: php paypal transactions

我从IOS sdk获得付款密钥,我需要从该付费密钥检查交易状态。

我使用过PayPal Merchant SDK for PHP。我可以从交易ID中获取交易详细信息,但不能从付款密钥中获取。

我也检查了这个Paypal Adaptive payment Pay key validation received from IOS但IPN选项,但在我的情况下它没用。

但我的要求是,我有ios应用程序,其中用户存款金额为paypal。然后对于服务器端,我需要验证事务状态,然后执行进一步的操作。

但是我无法从付费密钥中找到交易详情。

有没有人这样做过?感谢。

1 个答案:

答案 0 :(得分: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);

有了这个,我们就可以验证交易。

在您将其用于实时时,从网址中删除沙箱工作。