Ruby on rails 使用MWS Connect gem在Rails中请求Amazon MWS订单取消
我是Rails新手(但一般来说对web开发并不陌生)。我正在使用mws connect gem()连接到Amazon Marketplace Web服务。我正在尝试取消订单,根据Amazon MWS API文档,需要发送以下xml代码(据我所知):Ruby on rails 使用MWS Connect gem在Rails中请求Amazon MWS订单取消,ruby-on-rails,amazon-mws,Ruby On Rails,Amazon Mws,我是Rails新手(但一般来说对web开发并不陌生)。我正在使用mws connect gem()连接到Amazon Marketplace Web服务。我正在尝试取消订单,根据Amazon MWS API文档,需要发送以下xml代码(据我所知): 1.01 M_标识符 订单确认 1. 050-1234567-1234567 失败 取消的原因 gem文档不清楚如何做到这一点,因为这些示例都是关于如何添加或更新产品列表的,我已经测试过,效果很好。我已经尝试了我能想到的所有方法,只是手动构建“
1.01
M_标识符
订单确认
1.
050-1234567-1234567
失败
取消的原因
gem文档不清楚如何做到这一点,因为这些示例都是关于如何添加或更新产品列表的,我已经测试过,效果很好。我已经尝试了我能想到的所有方法,只是手动构建“提要”请求来提交它,并使用类的其余部分来处理提交内容,因为我知道这是可行的。SalesOrder类中当前的代码示例如下:
def self.cancel_amazon_order(amazon_order_id, cancel_reason)
mws = Mws.connect(
merchant: 'merchant_id',
access: 'access_key',
secret: 'secret'
)
cancel_feed = Mws::Feed.new 'merchant_id', :order_acknowledgement do
@messages << {
MessageID: '1',
OrderAcknowledgement: {
AmazonOrderID: amazon_order_id,
StatusCode: 'Failure',
CancelReason: cancel_reason
}
}
end
end
def self.取消亚马逊订单(亚马逊订单id,取消原因)
mws=mws.connect(
商户:“商户id”,
访问:“访问密钥”,
秘密:“秘密”
)
取消\u feed=Mws::feed.new'merchant\u id',:订单\u确认do
@消息如果有人感兴趣,我最终得到的解决方案是:
mws = Mws.connect merchant: AMAZON_CONFIG['merchant_id'], access: AMAZON_CONFIG['access'], secret: AMAZON_CONFIG['secret']
cancel_xml = Nokogiri::XML::Builder.new do | xml |
xml.AmazonEnvelope('xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:noNamespaceSchemaLocation' => 'amznenvelope.xsd') {
xml.Header {
xml.DocumentVersion '1.01'
xml.MerchantIdentifier AMAZON_CONFIG['merchant_id']
}
xml.MessageType 'OrderAcknowledgement'
xml.Message {
xml.MessageID '1'
xml.OrderAcknowledgement {
xml.AmazonOrderID order_id
xml.StatusCode 'Failure'
items.each do | item |
xml.Item {
xml.AmazonOrderItemCode item[:item_code]
xml.CancelReason 'NoInventory'
}
end
}
}
}
end.to_xml
mws.feeds.submit cancel_xml, {feed_type: :order_acknowledgement}
mws = Mws.connect merchant: AMAZON_CONFIG['merchant_id'], access: AMAZON_CONFIG['access'], secret: AMAZON_CONFIG['secret']
cancel_xml = Nokogiri::XML::Builder.new do | xml |
xml.AmazonEnvelope('xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:noNamespaceSchemaLocation' => 'amznenvelope.xsd') {
xml.Header {
xml.DocumentVersion '1.01'
xml.MerchantIdentifier AMAZON_CONFIG['merchant_id']
}
xml.MessageType 'OrderAcknowledgement'
xml.Message {
xml.MessageID '1'
xml.OrderAcknowledgement {
xml.AmazonOrderID order_id
xml.StatusCode 'Failure'
items.each do | item |
xml.Item {
xml.AmazonOrderItemCode item[:item_code]
xml.CancelReason 'NoInventory'
}
end
}
}
}
end.to_xml
mws.feeds.submit cancel_xml, {feed_type: :order_acknowledgement}