Paypal Sandbox 和 Google App Engine 的身份验证错误
Posted
技术标签:
【中文标题】Paypal Sandbox 和 Google App Engine 的身份验证错误【英文标题】:Authentication Error with Paypal Sandbox and Google App Engine 【发布时间】:2012-07-18 21:59:39 【问题描述】:我无法让 Paypal Adaptive Payments API 与 GAE 一起使用 - 我将专门使用 Implicit Payments。
返回的错误是我的 api 凭据不正确,但从我读过的内容来看,我也应该怀疑标题格式。
这是代码的 sn-p - 我在 GAE 中使用 urlfetch 模块:
headers =
"X-PAYPAL-USERID" : "xxxx_123456789_biz_api1.xxxx.com",
"X-PAYPAL-SECURITY-PASSWORD" : "1234567890",
"X-PAYPAL-SECURITY-SIGNATURE" : "Ahg-XXXXXXXXXXXXXXXXXXXXXX",
"X-PAYPAL-REQUEST-DATA-FORMAT" : "JSON",
"X-PAYPAL-RESPONSE-DATA-FORMAT" : "JSON",
"X-PAYPAL-APPLICATION-ID" : "APP-80W284485P519543T"
request_body =
"actionType" : "PAY",
"senderEmail" : "xxxx_123456789_biz_api1@xxxx.com",
"receiverList.receiver(0).email" : "xxxx_123456789_per@xxxx.com",
"receiverList.receiver(0).amount" : 100.00,
"currencyCode" : "USD",
"cancelUrl" : "some_url.com",
"returnUrl" : "some_url.com",
"requestEnvelope.errorLanguage" : "en_US"
url = "https://svcs.sandbox.paypal.com/AdaptivePayments/Pay"
result = urlfetch.fetch(url=url,payload=request_body,headers=headers)
我已经删除了一些值,但我使用的所有内容都来自沙盒“API 凭据”部分。
标题格式有问题吗?我是否使用了错误的凭据集?我什至可以使用沙盒来测试隐式付款吗?
非常感谢任何帮助。 谢谢!
对于任何有类似问题的人,请按照此处的优秀教程进行操作: Awesome Paypal Adaptive Payments Tutorial 如果格式不正确,标头确实会导致身份验证错误。我离得很远:)
【问题讨论】:
【参考方案1】:转到您的标题,然后像这样进行更改
钥匙
'X-PAYPAL-USERID'
应该变成
'X-PAYPAL-SECURITY-USERID'。
【讨论】:
【参考方案2】:您忘记在urlfetch.fetch
调用中设置POST 方法;没有它,the payload data is ignored。
result = urlfetch.fetch(url=url,
payload=request_body,
method=urlfetch.POST,
headers=headers)
教程中使用的urllib2.Request
代替switches automatically 在设置请求数据时从GET 到POST。
req = urllib2.Request(self.request_url,paypal_request_data,header_data)
【讨论】:
以上是关于Paypal Sandbox 和 Google App Engine 的身份验证错误的主要内容,如果未能解决你的问题,请参考以下文章
无法解析远程名称:'api-3t.sandbox.paypal.com'