2

Paypal Adaptive Payments API を GAE と連携させるのに問題があります。具体的には Implicit Payments を使用します。

返されたエラーは、API 資格情報が正しくないというものですが、読んだ内容から、ヘッダー形式も疑わしいはずです。

コードのスニペットは次のとおりです。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)

いくつかの値を Xed しましたが、使用しているものはすべてサンドボックスの「API Credentials」セクションからのものです。

ヘッダーのフォーマットに問題はありますか? 間違った資格情報セットを使用していませんか? サンドボックスを使用して Implicit Payments をテストすることはできますか?

どんな助けでも大歓迎です。ありがとう!

同様の問題を抱えている人は、ここにある優れたチュートリアルに従ってください: Awesome Paypal Adaptive Payments Tutorial ヘッダーが正しく形成されていないと、認証エラーが発生する傾向があります。私はかなり離れていました:)

4

2 に答える 2

0

urlfetch.fetch呼び出し内で POST メソッドを設定するのを忘れました。これがないと、ペイロード データは無視されます。

result = urlfetch.fetch(url=url, 
                        payload=request_body, 
                        method=urlfetch.POST, 
                        headers=headers)

urllib2.Request代わりに、チュートリアルで使用される は、リクエスト データが設定されると、GET から POST に自動的に切り替わります。

req = urllib2.Request(self.request_url,paypal_request_data,header_data)
于 2012-07-20T08:26:13.183 に答える