我的帖子似乎已到达主机,但是可能格式不正确?不是以JSON身份出现的?
主持人的结果显示错误代码: invalid_request 消息:请求验证失败。
主持人文档:
这意味着自动订购没有足够的信息 下订单。这几乎总是发生,因为你没有完全 在您的自动订购中填写您的亚马逊帐户信息 部分。
我的错误结果包括以下内容:
{
"_type": "error",
"_request_id": "5623dcc59ca1bb1e76000a9f",
"code": "invalid_request",
"message": "Validation failed on the request.",
"data": {
"validator_errors": [
{
"path": "retailer_credentials.password",
"message": "'undefined' is not a permitted value for 'retailer_credentials.password' field."
},
{
"path": "retailer_credentials.email",
"message": "'undefined' is not a permitted value for 'retailer_credentials.email' field."
},
{
"path": "shipping_method",
"message": "'undefined' is not a permitted value for 'shipping_method' field."
},
{
"path": "is_gift",
"message": "'undefined' is not a permitted value for 'is_gift' field."
},
{
"path": "shipping_address.phone_number",
"message": "'undefined' is not a permitted value for 'shipping_address.phone_number' field."
},
{
"path": "shipping_address.country",
"message": "'undefined' is not a permitted value for 'shipping_address.country' field."
},
{
"path": "shipping_address.city",
"message": "'undefined' is not a permitted value for 'shipping_address.city' field."
},
{
"path": "shipping_address.zip_code",
"message": "'undefined' is not a permitted value for 'shipping_address.zip_code' field."
},
{
"path": "shipping_address.address_line1",
"message": "'undefined' is not a permitted value for 'shipping_address.address_line1' field."
},
{
"path": "shipping_address.last_name",
"message": "'undefined' is not a permitted value for 'shipping_address.last_name' field."
},
{
"path": "shipping_address.first_name",
"message": "'undefined' is not a permitted value for 'shipping_address.first_name' field."
},
{
"path": "retailer",
"message": "'undefined' is not a permitted value for 'retailer' field."
},
{
"path": "client_token",
"message": "'undefined' is not a permitted value for 'client_token' field."
},
{
"value": [],
"path": "products",
"message": "'' is not a permitted value for 'products' field."
}
]
},
"host": "zincapi-1",
"offers_urls": [],
"screenshot_urls": [],
"_created_at": "2015-10-18T17:54:13.416Z"
}
我的代码在索引视图中显示为:
<table>
<thead>
<tr>
<th>IF name</th>
<th colspan="3"></th>
</tr>
</thead>
<tbody>
<% @ifs.each do |t| %>
<!-- Update Each cur_count -->
<%
require 'json'
require 'HTTParty'
zincUrl = 'https://api.zinc.io/v0/order'
@ZincResult=HTTParty.post(zincUrl,
:body => [{
:client_token => "XXXXXXXX",
:retailer => "amazon",
:products => [{"product_id" => ""+t.item+"", "quantity" => 1,
"seller_selection_criteria" => [
{
"condition_in" => ["New"],
"international" => false,
"max_shipping_days" => 10
}
]
}],
:max_price => 2000,
:shipping_address => {
"first_name" => "name",
"last_name" => "name",
"address_line1" => "address",
"address_line2" => "",
"zip_code" => "94133",
"city" => "San Francisco",
"state" => "CA",
"country" => "US",
"phone_number" => "number"
},
:is_gift => true,
:gift_message => "present",
:shipping_method => "cheapest",
:payment_method => {
"name_on_card" => "name",
"number" => "XXXXXXXX",
"security_code" => "XXX",
"expiration_month" => "XX",
"expiration_year" => "XXXX",
"use_gift" => false
},
:billing_address => {
"first_name" => "name",
"last_name" => "name",
"address_line1" => "address",
"address_line2" => "",
"zip_code" => "94133",
"city" => "San Francisco",
"state" => "CA",
"country" => "US",
"phone_number" => "XXXXXXXX"
},
:retailer_credentials => {
"email" => "email",
"password" => "password"
},
:webhooks => {
"order_placed" => "http://mywebsite.com/zinc/order_placed",
"order_failed" => "http://mywebsite.com/zinc/order_failed",
"tracking_obtained" => "http://mywebsite.com/zinc/tracking_obtained"
},
:client_notes => {
"our_internal_order_id" => "Order_"+t.item+"",
}
}].to_json,
:headers => { 'Content-Type' => 'application/json' } )
%>
<%puts "end of Zinc if loop"%>
<%puts @ZincResult%>
<tr>
<td><%= t.name %> </td>
<td><%= t.item %></td>
<td><%= t.key %></td>
<td><%= t.count %></td>
<td><%= t.cur_count %></td>
<td><%= link_to 'show', if_path(t) %></td>
<td><%= link_to 'edit', edit_if_path(t.id) %></td>
<td><%= link_to 'delete', ifs_delete_path(:id =>t.id)%></td>
</tr>
<% end %>
</tbody>
</table>
答案 0 :(得分:1)
根据Zinc Docs,您应该在正文中发送json对象,但是您正在发送json数组。要发送JSON对象,你应该用大括号开始你的身体&#34; {}&#34;而不是方括号&#34; []&#34;
@ZincResult=HTTParty.post(zincUrl,
:body => {.........}.to_json,
:headers => { 'Content-Type' => 'application/json' } )