首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >适应性支付API错误580001

适应性支付API错误580001
EN

Stack Overflow用户
提问于 2013-08-22 23:00:07
回答 1查看 1.7K关注 0票数 3

我向python中的paypal自适应支付API提出了一个支付请求,并获得了一个通用错误id 580001,没有任何其他信息。

代码语言:javascript
复制
    headers = {
        # API credentials for the API caller business account
        'X-PAYPAL-SECURITY-USERID':    config.PAYPAL_API_USER_ID,
        'X-PAYPAL-SECURITY-PASSWORD':  config.PAYPAL_API_PASSWORD,
        'X-PAYPAL-SECURITY-SIGNATURE': config.PAYPAL_API_SIGNATURE,
        'X-PAYPAL-APPLICATION-ID':     'APP-80W284485P519543T',
        'X-PAYPAL-REQUEST-DATA-FORMAT': 'JSON',
        'X-PAYPAL-RESPONSE-DATA-FORMAT': 'JSON'
    }
    payload = {
        "actionType": "PAY",
        "currencyCode": "USD",
        "receiverList": {
            "receiver": [{
                "amount": "1.00",
                "email": "sandbox_test_user_email@gmail.com"
            }]  
        },
        # where the sender is redirected
        "returnUrl": config.SUCCESS_URL,
        "cancelUrl": config.SUCCESS_URL,
        "requestEnvelope": {
            "errorLanguage":"en_US",
            # error detail level
            "detailLevel":"ReturnAll"
        }
    }
    import urllib2, urllib
    payload = urllib.urlencode(payload)

    request = urllib2.Request(url='https://svcs.sandbox.paypal.com/AdaptivePayments/Pay',
                              data=payload,
                              headers=headers)
    f = urllib2.urlopen(request)
    contents =  f.read()

响应:

代码语言:javascript
复制
    {"responseEnvelope":
    {"timestamp":"2013-08-22T15:44:50.97507:00",
     "ack":"Failure",
     "correlationId":"df4f39293971f",
     "build":"6941298"
     },
     "error"[ {"errorId":"580001",
               "domain":"PLATFORM",
               "subdomain":"Application",
               "severity":"Error",
               "category":"Application",
               "message":"Invalid request: {0}"}
             ]
 }

使用我的凭据进行滚动是有效的,它只是通过urrllib而失败了。我读到的其他错误代码都是偶然发送HTTP的,我通过request.get_method()确认了这确实是POSTing。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-23 18:52:45

发帖后十分钟就算出来了。典型的。

我将请求数据格式指定为JSON,但随后是对请求数据进行url编码。改变

代码语言:javascript
复制
payload = urllib.urlencode(payload)

代码语言:javascript
复制
import cjson
payload = cjson.encode(payload)

行得通!糟糕的是paypal没有返回任何信息错误消息。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18392145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档