Недопустимая общая ошибка метода извлечения Dwolla Server to Server - PullRequest
0 голосов
/ 01 марта 2012

Я слежу за документами для Dwolla для метода Сервер-Сервер и делаю пост-запрос на URL в документах со следующими данными json в теле:

{
   "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, я получаю «Недопустимые учетные данные приложения» в качестве ошибки.

1 Ответ

0 голосов
/ 26 сентября 2012

Это может быть не совсем ясно из документов запроса к серверу , но параметры "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
}
...