我的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功能是否足以批准付款。
非常感谢。
答案 0 :(得分:0)
您好Lusine Martirosyan,我认为如果您使用客户端休息,您不需要卷曲请求。 请参阅此链接https://developer.paypal.com/demo/checkout/#/pattern/client
如果需要,可以更改3个信息; ENV 如果需要,Client.sandbox或client.prod,在您的PayPal开发帐户上创建的应用程序的ID之间。 它在沙盒中适用于我