PHP cURL取消订阅PayPal问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP cURL取消订阅PayPal问题相关的知识,希望对你有一定的参考价值。

我承认,我已经花了3天的时间来回浏览文档,甚至学习了如何通过Postman创建自己的产品和计划。

所以我有一个完整的可正常使用的订阅按钮,现在我知道我需要保存订阅ID才能取消订阅,因此现在可以完美地保存和加载。

让我感到惊讶的是,每次有人要取消时,我都需要获得AuthKey,因此我需要运行2个cURL命令,1个GET Auth Key和1个POST取消订阅。我将如何在php中执行此操作?

当这些命令仅不运行数据时,我没有任何错误。

Paypal cURL示例:https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_cancel

////////////////////////////// GET TEMP ACCESS TOKEN/////////////////////////////////
$ch = curl_init();
$clientId = "x";
$secret = "x";
$myIDKEY = "";

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);

if(empty($result))die("Error: No response.");
else
{
    $json = json_decode($result);
    print_r($json->access_token);
    $myIDKEY = $json->access_token;
}

curl_close($ch);

/////////////////////////////// SEND CANCEL POST ////////////////////////////////
$ch = curl_init();
$headers  = [
            'Authorization: Bearer '.$myIDKEY, 
            'Content-Type: application/json'
        ];
$postData = [
    'reason' => 'clicked cancel subscription button'
];
curl_setopt($ch, CURLOPT_URL,"https://api.sandbox.paypal.com/v1/billing/subscriptions/".$_SESSION['honeybeesubID']."/cancel");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));           
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result     = curl_exec ($ch);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);


echo $myIDKEY

非常感谢!

答案

https://developer.paypal.com/docs/api/subscriptions/v1/#subscriptions_cancel所述,成功响应是没有数据的HTTP 204。

因此,通常会收到一个空响应以及该状态码。

以上是关于PHP cURL取消订阅PayPal问题的主要内容,如果未能解决你的问题,请参考以下文章

带有 cURL 的错误订阅 instagram API

如何检查 PayPal 订阅没有被取消?

捕获 PayPal 订阅取消

Paypal订阅结束时如何进行php检查?

解析 PayPal 订阅用完了

解析 PayPal 订阅用完了