更新计划价格时,定期付款API不支持订阅配置文件

时间:2015-03-16 15:21:30

标签: paypal-subscriptions recurring-billing

我使用paypal api进行定期结算。我想用paypal api更新计划价格。为此,我正在使用

$curl = curl_init();

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_URL, 'https://api-3t.sandbox.paypal.com/nvp');
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query(array(
    'USER' => 'ddsds_da_api',
    'PWD' => '123412432134',
    'SIGNATURE' => 'sgdsdshds',

    'METHOD' => 'UpdateRecurringPaymentsProfile',
    'VERSION' => '108',
    'PROFILEID' => 'I-FYYMDB55ADSH',

    'NOTE' => 'Uma nota opcional, explicando o motivo da mudança',
    'AMT' => 120,
    'CURRENCYCODE' => 'BRL'
)));

$response =    curl_exec($curl);

curl_close($curl);

$nvp = array();

if (preg_match_all('/(?<name>[^\=]+)\=(?<value>[^&]+)&?/', $response, $matches)) {
    foreach ($matches['name'] as $offset => $name) {
        $nvp[$name] = urldecode($matches['value'][$offset]);
    }
}

print_r($nvp);

但是我收到此错误定期付款API不支持订阅配置文件这是我的错误

<pre>Array
(
    [PROFILEID] => I-FYYMDB55ADSH
    [TIMESTAMP] => 2015-03-16T15:48:07Z
    [CORRELATIONID] => 33216e1739dde
    [ACK] => Failure
    [VERSION] => 76.0
    [BUILD] => 15735246
    [L_ERRORCODE0] => 11592
    [L_SHORTMESSAGE0] => Subscription Profiles not supported.
    [L_LONGMESSAGE0] => Subscription Profiles not supported by Recurring Payment APIs.
    [L_SEVERITYCODE0] => Error
)

请让我知道我做错了什么。

2 个答案:

答案 0 :(得分:2)

正如PayPal Community Help Forum

所述
  
    

by PayPal_Frank管理员回答:04-02-2012 11:08 AM

  
     

...
  基本订阅按钮配置文件ID不受支持   GetRecurringPaymentsProfileDetails API。此API仅适用于   通过订阅创建的订阅或定期付款配置文件   通过Express Checkout创建CreateRecurringPaymentsProfile API   我们基于API的结账解决方案。网站付款专业版不是必需的   使用快速结账。我知道这可能令我们感到沮丧   建议商家通过以下方式收集基本订阅信息   IPN存储在自己的数据库中或查看其中的信息   PayPal帐户。这也是作为功能请求提交的   我们的商业技术服务团队。
  https://www.x.com/developers/paypal/forums/general-support/there-any-api-or-methods-which-i-can-get- ...

     

...

答案 1 :(得分:0)

仅当使用以下网址时,您才能检查此类协议的状态:

$url = 'https://api.paypal.com/v1/payments/billing-agreements/'.$z_res[0]['id_agreement']."/transactions?start_date=".substr($logdbarray['Deal_Start'],0,10)."&end_date=".substr($now,0,10);

在这里,您将获得trsansactions的列表。如果最后一笔交易的状态为:取消,则该协议仍会运行。您还将获得交易日期,因此可以定义是否同意使用付费服务。