为啥我在 Django 中使用此调用从 Paypal 收到“内部错误”?

Posted

技术标签:

【中文标题】为啥我在 Django 中使用此调用从 Paypal 收到“内部错误”?【英文标题】:Why do I get 'internal error' from Paypal using this call in Django?为什么我在 Django 中使用此调用从 Paypal 收到“内部错误”? 【发布时间】:2013-09-06 02:08:32 【问题描述】:

我有一个获得 PayPal 身份验证的请求。它是用 Curl 编写的,并且运行良好。尝试用 Python 重写它会导致错误响应(500000 内部错误)。谁能指导我如何重写或纠正我现有的代码。

卷曲

curl -s --insecure -H "X-PAYPAL-SECURITY-USERID: <user_id>" -H "X-PAYPAL-SECURITY-PASSWORD: <user_password>" -H "X-PAYPAL-SECURITY-SIGNATURE: <user_signature>" -H "X-PAYPAL-REQUEST-DATA-FORMAT: JSON" -H "X-PAYPAL-RESPONSE-DATA-FORMAT: JSON" -H "X-PAYPAL-APPLICATION-ID: APP-80W284485P519543T" https://svcs.sandbox.paypal.com/Permissions/RequestPermissions -d "\"scope\":\"EXPRESS_CHECKOUT\", \"callback\":\"<callback_url>",  \"requestEnvelope\": \"errorLanguage\":\"en_US\""

Python

import settings
import urllib
import urllib2
from django.utils import simplejson

def home(request):
    headers = 
    "X-PAYPAL-SECURITY-USERID": settings.USERNAME,
    "X-PAYPAL-SECURITY-PASSWORD": settings.PASSWORD,
    "X-PAYPAL-SECURITY-SIGNATURE": settings.SIGNATURE,
    "X-PAYPAL-REQUEST-DATA-FORMAT": "JSON",
    "X-PAYPAL-RESPONSE-DATA-FORMAT": "JSON",
    "X-PAYPAL-APPLICATION-ID": "APP-80W284485P519543T"
    

    data = "scope":"EXPRESS_CKECKOUT", callback":"http://www.example.com/success.html", "requestEnvelope": "errorLanguage":"en_US"
    req = urllib2.Request("https://svcs.sandbox.paypal.com/Permissions/RequestPermissions/", simplejson.dumps(data), urllib.urlencode(data), headers)    
    res = urllib2.urlopen(req).read()

【问题讨论】:

【参考方案1】:

"EXPRESS_CKECKOUT" 中的错字而不是 "EXPRESS_CHECKOUT"urllib2.Request 的第三个参数 urllib.urlencode(data) 不是必需的。

data = "scope":"EXPRESS_CHECKOUT", "callback":"http://www.example.com/success.html", "requestEnvelope": "errorLanguage":"en_US"
req = urllib2.Request("https://svcs.sandbox.paypal.com/Permissions/RequestPermissions/", simplejson.dumps(data), headers)
res = urllib2.urlopen(req).read()

【讨论】:

我太鲁莽了!!谢谢西迪克。现在可以完美运行了。

以上是关于为啥我在 Django 中使用此调用从 Paypal 收到“内部错误”?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在我的 Django 项目中不断收到此“名称‘模型’未定义”错误?

为啥此 Django API 调用出现意外的关键字参数错误?

为啥我在 Django 的 Python shell 中出现编程错误?

django:从模板中的视图调用函数

Django:为啥当我在 django 中通过 popen 使用 Ghostscript 时会出现“找不到文件”错误

为啥我在 swift 中调用 getIndex(cell: TableViewCell1) 函数时出错?