贝宝邮寄要求批准付款

时间:2017-06-15 12:34:12

标签: laravel curl paypal express-checkout

我的laravel项目中有paypal快速结账。我正在使用客户端休息,在执行付款后,在actions.payment.execute()中我正在进行requets,使用https://api.sandbox.paypal.com/v1/oauth2/token url获取access_token。

然后我试图让curl reuqest确认付款:

https://api.sandbox.paypal.com/v1/payments/payment/". $PaymentID . "/execute"

但我从curl请求获得PERMISSION_DENIED:

 "No permission for the requested operation"

这是我的卷曲请求

$ch = curl_init();
    $token = $arrData['AccessToken'];
    $data = ['payer_id' => $arrData['PayerID']];

    curl_setopt($ch, CURLOPT_URL, "https://api.sandbox.paypal.com/v1/payments/payment/". $arrData['PaymentID'] ."/execute");
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER,array(
                          "Content-Type:application/json",
                          "Authorization:Bearer ".$token )
            );
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);  
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

    $result = curl_exec($ch);
    $json = json_decode($result, TRUE); // 'true' converts it to an array
    var_dump($json);exit;
    curl_close($ch);

也许有人有同样的问题,知道是什么原因?

或者也许在客户端休息时我们不需要提出curl请求来批准付款。我不确定onAuthorize功能是否足以批准付款。

非常感谢。

1 个答案:

答案 0 :(得分:0)

您好Lusine Martirosyan,我认为如果您使用客户端休息,您不需要卷曲请求。 请参阅此链接https://developer.paypal.com/demo/checkout/#/pattern/client

如果需要,可以更改3个信息; ENV 如果需要,Client.sandbox或client.prod,在您的PayPal开发帐户上创建的应用程序的ID之间。 它在沙盒中适用于我