0

PreapprovalHTTP POST リクエストで何が起こっているのかわかりません。PayPal のAdaptive Payments APIへの基本的な呼び出し、具体的には呼び出しを実行しようとしていますPreapproval。また、PayPal のエラー580001「無効なリクエスト」自体はそれほど役に立ちません。

リクエスト ヘッダー (変更したサンドボックスのアカウント資格情報に基づくxxx):

{
  'X-PAYPAL-REQUEST-DATA-FORMAT': 'JSON',
  'X-PAYPAL-SECURITY-PASSWORD': 'xxx',
  'X-PAYPAL-RESPONSE-DATA-FORMAT': 'JSON',
  'X-PAYPAL-SECURITY-SIGNATURE': 'xxx',
  'X-PAYPAL-SECURITY-USERID': 'xx',
  'X-PAYPAL-APPLICATION-ID': 'APP-80W284485P519543T'
}

私の要求ペイロード (HTTP POST、JSON でエンコードされた本文):

{
  "requireInstantFundingSource": "TRUE", 
  "returnUrl": "http://www.google.com/?paypal=ok", 
  "maxTotalAmountOfAllPayments": 1002, 
  "maxNumberOfPaymentsPerPeriod": 1, 
  "endingDate": "2014-03-14T16:49:36+0000", 
  "requestEnvelope.errorLanguage": "en_US", 
  "clientDetails.applicationId": "XXX", 
  "cancelUrl": "http://www.google.com/paypal=cancel", 
  "startingDate": "2013-09-15T16:49:36+0000", 
  "feesPayer": "PRIMARYRECEIVER", 
  "currencyCode": "SEK"
}

上記の POST 本文は次の場所に投稿されます。

https://svcs.sandbox.paypal.com/AdaptivePayments/Preapproval

Paypal からの応答 (理解のために「装飾」):

{
  "responseEnvelope": {
    "ack": "Failure", 
    "timestamp": "2013-09-10T09:56:43.031-07:00", 
    "build": "6941298", 
    "correlationId": "26d55e6bfcaa0"
  }, 
  "error": [
    {
      "category": "Application", 
      "domain": "PLATFORM", 
      "severity": "Error", 
      "message": "Invalid request: {0}", 
      "subdomain": "Application", 
      "errorId": "580001"
    }
  ]
}

フィードバックをお待ちしております。

4

1 に答える 1

3

わかりました。どのように?

修正#1

引数requestEnvelope.errorLanguageclientDetails.applicationIdは、次のような独自のオブジェクトに "JSON 化" する必要があります。

"requestEnvelope": {
    "errorLanguage": "en_US"
}, 

"clientDetails": {
    "applicationId": "APP-XXXXXXXXXXXXX"
}, 

それぞれ。

修正#2

日付形式; 日付形式は、私が渡していたものでは2014-03-15T20:14:38.007+00:00なく、形式にする必要があります。2014-03-14T20:14:38+0000ミリ秒と、utc オフセットのコロン付きのタイムゾーンに注意してください。

次回Invalid requestは、渡すパラメーターが最初に表示されます。

于 2013-09-11T20:23:34.977 に答える