Rakuten ecservice API - 获取订单

时间:2014-08-08 18:00:00

标签: ruby

我有没有办法从乐天电子商务中导入订单?

我正在寻找一些API文档,但我没有找到Ruby或其他语言

3 个答案:

答案 0 :(得分:1)

简而言之,是的,API文档确实存在,但为了使用API​​来获取订单,您需要向他们注册(Rakuten),因为所有API请求都需要附带授权令牌。

对于英国,请发送电子邮件至support@rakuten.co.uk并索取API文档,其中包括:订单,操作,产品和库存API。

答案 1 :(得分:0)

一直在寻找发布错误和反复无常的结果的地方。 日本“楽天WEB SERVER” API(特别是使用“ RakutenPayOrderAPI”)的这项工作(有关信息,请参见Rakuten商店https://webservice.rms.rakuten.co.jp/merchant-portal/view?contents=/ja/common/1-1_service_index/rakutenpayorderapi/getorder的所有者)

我发现此CURL脚本(由他们提供)可以正常工作,但是最困难的时间使其在我公司的Rails应用程序中起作用。

对于YOUR_AUTH_HERE,您需要将serviceSecret:licenseKey用作字符串并将其转换为Base64,然后确保转换后没有尾随==符号。然后像我一样,将其放入ENV文件中。

curl -X POST   https://apikuten.co.jp/es/2.0/order/searchOrder/   -H 'Authorization: ESA YOUR_AUTH_HERE'   -H 'Content-Type: application/json; charset=utf-8'   -d '{
"dateType" : 4,
"startDatetime" : "2019-03-29T00:00:00+0900",
"endDatetime" : "2019-03-30T00:00:00+0900",
"PaginationRequestModel" :
{
    "requestRecordsAmount" : 30,
    "requestPage" : 1,
    "SortModelList" : [
        {
            "sortColumn" : 1,
            "sortDirection" : 1
        }
    ]
}
}'

就像我说的那样,经过反复的尝试,这是我使用HTTParty在rails中想到的:

require 'httparty'
require 'json'

authorization = 'ESA ' + ENV['RAKUTEN_API']

get_orders_list = HTTParty.post("https://api.rms.rakuten.co.jp/es/2.0/order/searchOrder/",
    :headers => { "Authorization" => authorization,
        "Content-Type" => "application/json; charset=utf-8"},
    :body => { 
        "dateType" => 4, 
        "startDatetime" => "2019-03-31T00:00:00+0900",
        "endDatetime" => "2019-03-31T23:59:59+0900",
        "PaginationRequestModel" => {
            "requestRecordsAmount" => 1000,
            "requestPage" => 1,
            "SortModelList" => [{
                "sortColumn" => 1,
                "sortDirection" => 1 }]
    }}.to_json)
pp get_orders_list

然后,您可以使用生成的响应订单号来一次请求最多100个订单中的特定订单数据。下面是一个示例,说明如何继续代码以获取该信息:

if get_orders_list['orderNumberList'].length > 100
    orders_list_by_100 = get_orders_list['orderNumberList'].each_slice(100).to_a
    order_details = Array.new
    messages = Array.new
    orders_list_by_100.each do |sub_list|
        get_order_details = HTTParty.post("https://api.rms.rakuten.co.jp/es/2.0/order/getOrder/",
            :headers => { "Authorization" => authorization,
                "Content-Type" => "application/json; charset=utf-8"},
            :body => {"orderNumberList" => sub_list}.to_json)
        order_details << get_order_details["OrderModelList"]
        messages << get_order_details["MessageModelList"]
    end
else
    get_order_details = HTTParty.post("https://api.rms.rakuten.co.jp/es/2.0/order/getOrder/",
        :headers => { "Authorization" => authorization,
            "Content-Type" => "application/json; charset=utf-8"},
        :body => {"orderNumberList" => get_orders_list['orderNumberList']}.to_json)
    order_details = get_order_details["OrderModelList"]
    messages = get_order_details["MessageModelList"]
end

希望这可以帮助某个人。如果我有更多的时间,我将学习如何制作宝石并使其更易于使用。

答案 2 :(得分:0)

以防万一有人仍然在Rakuten api文档中搜索订单:这是api文档({)上的link,并且可以在Rakuten帐户中生成令牌(无需联系Rakuten支持人员)。