0

サーバー間メソッドのDwollaのドキュメントをフォローしており、本文に次のjsonデータを含むドキュメントのURLにPOSTリクエストを送信しています。

{
   "Key":"Fake_Key",
   "Secret":"Fake_Secret",
   "PurchaseOrder":{
      "DestinationId":"Fake_Destination_id",
      "Discount":0,
      "OrderItems":[
      {
            "Description":"a product",
            "Name":"lol",
            "Price":19.99,
            "Quantity":20
         }
      ]
   },
   "Shipping":0,
   "Tax":0,
   "Total":399.8,
   "Test":true
}

残念ながら、データは私には有効に見えますが、サーバーは次のエラーメッセージで応答しています。

{
    "Result":"Failure",
    "Message":"Total cannot be less than $1."
}

エラーは、問題は「合計」が1ドル未満であることを示していますが、明らかにそうではありません。

- さらに詳しい情報

これが私がリクエストをするために使っているphpです:

$result = file_get_contents('https://www.dwolla.com/payment/request', null, stream_context_create(array(
    'http' => array(
    'method' => 'POST',
    'header' => 'Content-Type: application/json' . "\r\n" .
        'Content-Length: ' . strlen(json_encode($body)) . "\r\n",
        'content' => json_encode($body),
    ),
)));

Content-Typeを称賛すると、エラーとして「InvalidApplicationCredentials」が表示されます。

4

1 に答える 1

0

サーバー間のリクエスト ドキュメントからは完全に明確ではないかもしれませんが、"Shipping"、"Tax"、および "Total" パラメーターはすべて "PurchaseOrder" オブジェクト パラメーター内にネストする必要があります。したがって、リクエストを機能させるには、これらのパラメーターの位置を次のように変更する必要があります。

{
   "Key":"Fake_Key",
   "Secret":"Fake_Secret",
   "PurchaseOrder":{
      "DestinationId":"Fake_Destination_id",
      "Discount":0,
      "OrderItems":[
      {
            "Description":"a product",
            "Name":"lol",
            "Price":19.99,
            "Quantity":20
         }
      ],
      "Shipping":0,
      "Tax":0,
      "Total":399.8
   },
   "Test":true
}
于 2012-09-26T14:00:09.493 に答える