2016-05-09 6 views
1

Im пытается отправить транзакцию в квадрат, используя uni-rest с узлом. Я считаю, что у меня есть все необходимые параметры, как бы то ни было, когда я получаю ошибку 422 от квадрата, в описаниях он говорит «тело в теле требуется». Выведет некоторые образцы кода и ошибку ниже.422 ошибка при попытке отправить транзакцию

Мой запрос:

var json = { 
      "idempotency_key": "74ae1696-b1e3-4328-af6d-f1e04d947a13", 
      "shipping_address": { 
      "address_line_1": "123 Main St", 
      "locality": "San Francisco", 
      "administrative_district_level_1": "CA", 
      "postal_code": "94114", 
      "country": "US" 
      }, 
      "billing_address": { 
      "address_line_1": "500 Electric Ave", 
      "address_line_2": "Suite 600", 
      "administrative_district_level_1": "NY", 
      "locality": "New York", 
      "postal_code": "10003", 
      "country": "US" 
      }, 
      "amount_money": { 
      "amount": 5000, 
      "currency": "USD" 
      }, 
      "card_nonce": "CBASEA-NYZAdKADzd5FeF6kh0ko", //sandbox nonce 
      "reference_id": "some optional reference id", 
      "note": "some optional note", 
      "delay_capture": false 
     } 

//console.log(json) 
return unirest.post('http://connect.squareup.com/v2/locations/9T8KRNF0XX6BH/transactions') 
    .headers({'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization' : 'Bearer '+access_token, 'rejectUnauthorized': false}) 
    .type('json') 
    .send(json) 
    .end(function (json) { 
     if(json.error){ 
     console.log(json.error); 
     } 
     console.log(json.body) 
     res.json(json) 
    }); 

}

Моя ошибка:

{ Error: got 422 response 
at /Users/.../node_modules/unirest/index.js:395:27 
at process._tickCallback (internal/process/next_tick.js:98:9) status: 422 } 
{ errors: [ { category: 'INVALID_REQUEST_ERROR', 
    code: 'BAD_REQUEST', 
    detail: 'body in body is required' } ] } 

ответ

1

Вы делаете запрос через HTTP вместо HTTPS. API обслуживается только через HTTPS.

Я подозреваю, что причиной такого поведения является то, что сайт HTTP отправляет вам перенаправление на сайт HTTPS. Однако, если вы явно не обрабатываете переадресацию POST, тело POST (и, возможно, другие необходимые заголовки также) теряется, что вызывает этот непонятный ответ.

+0

спасибо !! что-то настолько маленькое вызвало у меня столько горя. –

Смежные вопросы