如何解决Rest API 定期支付更新订阅计划问题
这是我更新定期付款计划的代码。请对此更新 PayPal 支付 Rest API 提出任何建议。
if ($plan_id == 1) {
$product_id = 'plan id 1';
}elseif ($plan_id == 2) {
$product_id = 'plan id 2';
}
$ch = curl_init();
$clientId ='XXXXXXXX';
$clientSecret= 'XXXXXXXXX';
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,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_USERPWD,$clientId.":".$clientSecret);
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);
}
curl_close($ch);
$transaction_id = Subscription::select('transaction_id')->where('userid',$user_id)->where('subscription_status','=','active')->first();
$curl = curl_init();
curl_setopt_array($curl,array(
CURLOPT_URL => 'https://api-m.sandbox.paypal.com/v1/billing/subscriptions/'.$transaction_id->transaction_id.'/revise',CURLOPT_RETURNTRANSFER => true,CURLOPT_ENCODING => '',CURLOPT_MAXREDIRS => 10,CURLOPT_TIMEOUT => 0,CURLOPT_FOLLOWLOCATION => true,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTOMREQUEST => 'POST',CURLOPT_POSTFIELDS =>'{
"plan_id": '.$product_id.',"shipping_amount": {
"currency_code": "USD","value": "10.00"
},"shipping_address": {
"name": {
"full_name": "John Doe"
},"address": {
"address_line_1": "","address_line_2": "","admin_area_2": "","admin_area_1": "","postal_code": "","country_code": "US"
}
},"application_context": {
"brand_name": "","locale": "","shipping_preference": "SET_PROVIDED_ADDRESS","payment_method": {
"payer_selected": "PAYPAL","payee_preferred": "UNRESTRICTED"
},"return_url": "https://example.com/returnUrl","cancel_url": "https://example.com/cancelUrl"
}
}',CURLOPT_HTTPHEADER => array(
'Content-Type: application/json','Authorization: Bearer '.$json->access_token.''
),));
$response = curl_exec($curl);
curl_close($curl);
我只是向您展示我的代码片段。
此代码显示此错误。问题是,当我更新我的订阅计划时,我没有看到更新订阅计划的状态。简而言之,我的代码有问题,或者有什么问题。
{
"name": "UNPROCESSABLE_ENTITY","message": "The requested action could not be performed,semantically incorrect,or failed business validation.","debug_id": "001e1c2b0009a","details": [
{
"issue": "PLAN_PRODUCT_NOT_COMPATIBLE","description": "The old and the new plans should be for the same product."
}
],"links": [
{
"href": "https://developer.paypal.com/docs/api/v1/billing/subscriptions#UNPROCESSABLE_ENTITY","rel": "information_link","method": "GET"
}
]
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。