【问题标题】:GetRecurringPaymentsProfileDetails - ACK=FailureGetRecurringPaymentsProfileDetails - ACK=失败
【发布时间】:2016-03-15 14:12:31
【问题描述】:

我有代码 GetRecurringPaymentsProfileDetails...哪里错了? //------------------------------------------------ -------------------------------------------------- -------------------------------------------------- ----

public function callNVP($profileId) {
        $api_request = '&USER=' . urlencode('bestlifeXXXXX.gmaill.com')
                . '&PWD=' . urlencode('136XXXXXXX')
                . '&SIGNATURE=' . urlencode('XXXXXXXXJJJ4qi4-ASVptjmiE8Sqp4tXXXXXXCa')
                . '&VERSION=76.0'
                . '&METHOD =GetRecurringPaymentsProfileDetails'
                . '&PROFILEID=' . urlencode($profileId);
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, 'https://api-3t.sandbox.paypal.com/nvp'); // For live transactions, change to 'https://api-3t.paypal.com/nvp'
        curl_setopt($ch, CURLOPT_VERBOSE, 1);
        //curl_setopt($ch, CURLOPT_HEADER, FALSE);
        // Uncomment these to turn off server and peer verification
        //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POST, 1);

        // Set the API parameters for this transaction
        //curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $api_request);

        // Request response from PayPal
        $response = curl_exec($ch);

        // If no response was received from PayPal there is no point parsing the response
        if (!$response)
            die('Calling PayPal to change_subscription_status failed: ' . curl_error($ch) . '(' . curl_errno($ch) . ')');

        curl_close($ch);

        // An associative array is more usable than a parameter string
        parse_str($response, $parsed_response);

        return $parsed_response;
    }

但它是返回结果:

Array
(
    [0] => Array
        (
            [TIMESTAMP] => 2015-12-10T03:49:09Z
            [CORRELATIONID] => cb2489449e84c
            [ACK] => Failure
            [L_ERRORCODE0] => 10001
            [L_SHORTMESSAGE0] => Internal Error
            [L_LONGMESSAGE0] => Timeout processing request
        )

)

我想要的是:

(
    [PROFILEID] => I-CL7Kxxx
    [STATUS] => Active
    [AUTOBILLOUTAMT] => AddToNextBilling
    [DESC] => xxx
    [MAXFAILEDPAYMENTS] => 2
    [SUBSCRIBERNAME] => Dan
    [PROFILESTARTDATE] => 2013-05-15T07:00:00Z
    [PROFILEREFERENCE] => 31571
    [NEXTBILLINGDATE] => 2013-05-16T10:00:00Z
    [NUMCYCLESCOMPLETED] => 1
    [NUMCYCLESREMAINING] => 18446744073709551615
    [OUTSTANDINGBALANCE] => 0.00
    [FAILEDPAYMENTCOUNT] => 0
    [LASTPAYMENTDATE] => 2013-05-15T14:52:04Z
    [LASTPAYMENTAMT] => 0.10
    [TRIALAMTPAID] => 0.00
    [REGULARAMTPAID] => 0.10
    [AGGREGATEAMT] => 0.10
    [AGGREGATEOPTIONALAMT] => 0.00
    [FINALPAYMENTDUEDATE] => 1970-01-01T00:00:00Z
    [TIMESTAMP] => 2013-05-15T14:55:58Z
    [CORRELATIONID] => 225681xxx
    [ACK] => Success
    [VERSION] => 64
    [BUILD] => 5908853
    [SHIPTOSTREET] => xxx
    [SHIPTOCITY] => xxx
    [SHIPTOSTATE] => CA
    [SHIPTOZIP] => xxx
    [SHIPTOCOUNTRYCODE] => US
    [SHIPTOCOUNTRY] => US
    [SHIPTOCOUNTRYNAME] => United States
    [SHIPADDRESSOWNER] => PayPal
    [SHIPADDRESSSTATUS] => Unconfirmed
    [BILLINGPERIOD] => Day
    [BILLINGFREQUENCY] => 1
    [TOTALBILLINGCYCLES] => 0
    [CURRENCYCODE] => USD
    [AMT] => 0.10
    [SHIPPINGAMT] => 0.00
    [TAXAMT] => 0.00
    [REGULARBILLINGPERIOD] => Day
    [REGULARBILLINGFREQUENCY] => 1
    [REGULARTOTALBILLINGCYCLES] => 0
    [REGULARCURRENCYCODE] => USD
    [REGULARAMT] => 0.10
    [REGULARSHIPPINGAMT] => 0.00
    [REGULARTAXAMT] => 0.00
)

谁能帮帮我?请...

【问题讨论】:

  • 您尝试传入的配置文件 ID 是什么?配置文件 ID 是在 Sandbox 还是 Live 中创建的?
  • 在沙盒中... curl_setopt($ch, CURLOPT_URL, 'api-3t.sandbox.paypal.com/nvp')
  • 您能告诉我您传入的个人资料 ID 吗?我会搜索它
  • 你想要吗? I-LA5TLTYBLNA9 操作:GetRecurringPaymentsProfileDetails 我想要它的状态(活动、过期、暂停...等)。
  • 您的用户名和密码 API 凭据似乎无效。您不应使用您的帐户登录信息,而应使用随 SIGNATURE 一起提供给您的 API 凭据。你能查一下吗?

标签: paypal paypal-sandbox


【解决方案1】:

这绝对是因为您的 API 请求(我猜它的 不正确的个人资料 ID

您可以在浏览器中尝试(单击)以下链接吗(替换 API 凭据、配置文件 ID)

https://api-3t.sandbox.paypal.com/nvp?&user=xxxxxxxxxx&pwd=xxxxxxxxxx&signature=xxxxxxxxxx&VERSION=109.0&METHOD=GetRecurringPaymentsProfileDetails&PROFILEID=I-XXXXXXXXXXXX

然后看看你得到什么回应。

当我使用“I-XXXXXXXXXXXX”作为个人资料 ID 时,我得到 内部错误

【讨论】:

  • XXXX 异常。真的不...我在论坛Paypal看到,它不允许GetRecurringPaymentsProfileDetails,因为API不支持。
  • 提供您使用我在回答中提供的链接时得到的完整回复
【解决方案2】:

你有这个:

'&METHOD =GetRecurringPaymentsProfileDetails'

我认为那里的空间导致了无效请求。试试这个:

'&METHOD=GetRecurringPaymentsProfileDetails'

【讨论】:

  • 不!它不起作用。我使用操作:SetExpressCheckout 和操作:ManageRecurringPaymentsProfileStatus。是工作。但是操作:GetRecurringPaymentsProfileDetails 然后不起作用。
  • 你试过我告诉你的吗?由于参数名称中的空格,它没有看到正确的方法。 Take a look here 可以看到通话成功了。
  • 该示例使用的是我的PayPal PHP SDK,我建议您查看一下。 PayPal 自己的集成团队更喜欢它。如您所见,该示例开箱即用,并且几乎适用于经典 API 中可用的每个 PayPal API 调用。
猜你喜欢
  • 2013-05-10
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
  • 2016-03-14
  • 2013-10-15
  • 2011-08-22
  • 2017-10-09
  • 1970-01-01
相关资源
最近更新 更多