通过SDK检索贝宝计划给出错误代码400-无请求有效负载


Retrieving paypal plan through SDK gives error code 400 - No Request Payload

我正在尝试使用最新的Github Paypal SDK的示例脚本来获取计划。调用API时抛出:

'PayPal'Exception'PayPalConnectionException' with message 'Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/billing-plans/P-0B085781ML2192537TXPEZ6I.'

以下是日志文件中关注的行:

[18-05-2016 12:26:16] PayPal'Core'PayPalHttpConnection : INFO: GET https://api.sandbox.paypal.com/v1/payments/billing-plans/P-0B085781ML2192537TXPEZ6I
[18-05-2016 12:26:16] PayPal'Core'PayPalHttpConnection : INFO: Invalid or no certificate authority found - Retrying using bundled CA certs file
[18-05-2016 12:26:18] PayPal'Core'PayPalHttpConnection : DEBUG: Request Headers     : GET /v1/payments/billing-plans/P-0B085781ML2192537TXPEZ6I HTTP/1.1, Host: api.sandbox.paypal.com, Accept: */*, Content-Type: application/json, User-Agent: PayPalSDK/PayPal-PHP-SDK 1.7.1 (platform-ver=5.6.12; bit=32; os=Windows_NT_6.2; machine=i586; crypto-lib-ver=1.0.1p; curl=7.42.1), Authorization: Bearer ..., , 
[18-05-2016 12:26:18] PayPal'Core'PayPalHttpConnection : DEBUG: No Request Payload
-----------------------------------------------------------------------
[18-05-2016 12:26:18] PayPal'Core'PayPalHttpConnection : INFO: Response Status  : 400
[18-05-2016 12:26:18] PayPal'Core'PayPalHttpConnection : DEBUG: Response Headers    : HTTP/1.1 400 Bad Request, Date: Tue, 17 May 2016 22:26:19 GMT, Server: Apache, PROXY_SERVER_INFO: host=slcsbplatformapiserv3002.slc.paypal.com;threadId=311, Paypal-Debug-Id: dc99bbb98dc5e, CORRELATION-ID: dc99bbb98dc5e, Content-Language: *, Connection: close, Connection: close, Paypal-Debug-Id: dc99bbb98dc5e, Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D1880%26app%3Dplatformapiserv%26TIME%3D2342140759%26HTTP_X_PP_AZ_LOCATOR%3D; Expires=Tue, 17 May 2016 22:56:20 GMT; domain=.paypal.com; path=/; Secure; HttpOnly, Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT, Vary: Authorization, Content-Length: 0, Content-Type: text/xml, , 
[18-05-2016 12:26:18] PayPal'Core'PayPalHttpConnection : ERROR: Got Http response code 400 when accessing https://api.sandbox.paypal.com/v1/payments/billing-plans/P-0B085781ML2192537TXPEZ6I. 
[18-05-2016 12:26:18] PayPal'Core'PayPalHttpConnection : DEBUG: 

根据我从日志条目中了解到的情况,到目前为止,我已经尝试过:交换证书,关闭curl部分的SSL验证,当然还有不同的活动计划ID。

BTW对Paypal的所有其他调用都会按预期返回数据。这只是得到计划的电话。

如果有任何帮助的话,我会在Windows上使用XAMPP localhost。

有人能给我指正确的方向吗?

Sooo。。我想是我的笨拙:)

以上述错误结束的计划ID已不存在或已删除状态。无论如何,他们再也联系不上了。所以贝宝发送了错误代码400。

注意:如果状态没有改变,在计划更新调用中也会发生这种情况。也就是说,你试图发送一个新的"活动"状态,而你试图更改的计划已经处于活动状态。将抛出相同的错误代码400。我知道激活激活的计划是没有意义的,但有时如果你忘记检查你的代码,这样的错误可能会变得非常误导。