当使用“立即购买”并立即付款购买商品时,我的代码正在被正确触发(代码会向我发送一封电子邮件进行测试)。
我想要的是所售商品的易趣商品ID,我相信在这里(在文档中找到此示例):
<GetItemTransactionsResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2015-07-02T00:09:03.273Z</Timestamp>
<Ack>Success</Ack>
<Version>967</Version>
<Build>E967_CORE_BUNDLED_11481347_R1</Build>
<PaginationResult>
<TotalNumberOfPages>1</TotalNumberOfPages>
<TotalNumberOfEntries>1</TotalNumberOfEntries>
</PaginationResult>
<HasMoreTransactions>false</HasMoreTransactions>
<TransactionsPerPage>100</TransactionsPerPage>
<PageNumber>1</PageNumber>
<ReturnedTransactionCountActual>1</ReturnedTransactionCountActual>
<Item>
<AutoPay>false</AutoPay>
<Currency>USD</Currency>
**<ItemID>110048746230</ItemID>**
我正在使用eBay API:
public void EbayCall(GetItemTransactionsResponseType response)
这是期望的正确对象吗?我无法理解为什么response.ReturnedTransactionCountActual为0.另外response.Item.ItemID为null。
response.Ack返回Success。
我做错了什么?
答案 0 :(得分:0)
看起来你得到了一个xml响应。 ID显示为110048746230.可以在c#中轻松解析xml。我使用Load(字符串FILENAME)方法起诉下面的XML Linq,但您可以使用带有Parse(字符串XML)方法的字符串。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication3
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
XDocument doc = XDocument.Load(FILENAME);
string itemID = (string)doc.Descendants().Where(x => x.Name.LocalName == "ItemID").FirstOrDefault();
}
}
}