Эта ошибка мучает меня вот уже около недели ... Я пытаюсь создать отгрузку на Ebay, но в ответе появляется код ошибки 500. Вот ссылка на документацию https://developer.ebay.com/api-docs/sell/fulfillment/resources/order/shipping_fulfillment/methods/createShippingFulfillment
Я запускаю этот код в производственной среде:
@header = {
'Content-Type': 'application/json',
'Authorization': "Bearer #{@token}"
}
uri = URI.parse("https://api.ebay.com/sell/fulfillment/v1/order/#{order.order_number}/shipping_fulfillment")
# Create the HTTP objects
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
items = []
order.items.each do |i|
items << {"lineItemId": i[:id]}
end
params = {
"lineItems": items,
"shippedDate": Time.parse(date).strftime("%Y-%m-%dT%H:%M:%S.000Z"),
"shippingCarrierCode": "USPS",
"trackingNumber": tracking_number
}
request = Net::HTTP::Post.new(uri.request_uri, @header)
request.body = params.to_json
response = http.request(request)
puts response.code #prints 500
Моя ошибка:
{"errors": [{
"errorId": 2003,
"domain": "ACCESS",
"category": "APPLICATION",
"message": "Internal error",
"longMessage": "There was a problem with an eBay internal system or process. Contact eBay developer support for assistance",
"parameters": [{
"name": "reason",
"value": "Failed to transform underlying error response, see logs."
}]
}]}
Я заплатил за премиальную поддержку разработчика, но до сих пор не получил ответа. Любая помощь будет принята с благодарностью. Я пробовал отправить тот же запрос с пустым телом, но это не меняет ответа. Я также пробовал изменить заголовки. Если я добавлю 'Accept': 'application/json'
, то получу ошибку 500 с пустым телом. В этом нет никакого смысла.
ОБНОВЛЕНИЕ
Из предложений в комментариях я попытался изменить параметры ha sh на:
params = {
"lineItems": "[{\"lineItemId\":10025031700524,\"quantity\":1}]",
"shippedDate": "2020-05-01T08:05:00.000Z",
"shippingCarrierCode": "USPS",
"trackingNumber": "9400111899562795104724"
}
У меня также есть пробовал выполнять последующие запросы. Я также попытался отправить в теле следующее JSON:
request.body = {
"lineItems": [
{
"lineItemId": "10025031700524",
"quantity": "1"
}
],
"shippedDate": "2020-05-01T08:05:00.000Z",
"shippingCarrierCode": "USPS",
"trackingNumber": "9400111899562795104724"
}.to_json
Каждая из этих попыток приводит к той же ошибке, что и раньше. Я также пробовал изменить количество на целое число и строку.
ОБНОВЛЕНИЕ 2
Вот содержание моего запроса:
POST /sell/fulfillment/v1/order/24-04954-08727/shipping_fulfillment
content-type: application/json
authorization: Bearer v#i^1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
accept-encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
accept: */*
user-agent: Ruby
connection: close
host: api.ebay.com
content-length: 159
content-type: application/x-www-form-urlencoded
{"lineItems":[{"lineItemId":"10025031700524"}],"shippedDate":"2020-05- 01T08:05:00.000Z","shippingCarrierCode":"USPS","trackingNumber":"9400111899562795104724"}