GetSellerTransactions返回哪些transaction取决于它们近一次的修改时间是否进入ModTimeFilter的设定范围中。 Transaction有可能在不同时段被修改,以致其在当前状态下显示多次响应。这一设计的目的在于帮助你跟踪transaction的状态变化。
如下例:
Item 1在Nov 14th 2006, 4:00 pm GMT被购买,但迄今没有支付。
你用下列的ModTimeFilter在2006-11-15T01:00:00.000Z调用了GetSellerTransaction:
<?xml version="1.0" encoding="utf-8"?>
<GetSellerTransactionsRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<ModTimeFrom>2006-11-14T00:00:00.000Z</ModTimeFrom>
<ModTimeTo>2006-11-15T00:00:00.000Z</ModTimeTo>
<Version>485</Version>
<RequesterCredentials>
<eBayAuthToken>*****</eBayAuthToken>
</RequesterCredentials>
</GetSellerTransactionsRequest>
当LastTimeModified到达2006-11-14T16:00:00.000Z,并且带有下列的Status,这个商品的transaction将会被返回:
<Status>
<eBayPaymentStatus>NoPaymentFailure</eBayPaymentStatus>
<CheckoutStatus>CheckoutIncomplete</CheckoutStatus>
<LastTimeModified>2006-11-14T16:00:00.000Z</LastTimeModified>
<PaymentMethodUsed>None</PaymentMethodUsed>
<CompleteStatus>Incomplete</CompleteStatus>
<BuyerSelectedShipping>false</BuyerSelectedShipping>
</Status>
继而在Nov 15th 2006 3:00 GMT,当从卖家处获取必要的细节后,买家完成结账并付款
这一transaction的LastTimeModified就变成了2006-11-15T15:00:00.000Z
现在你再使用下列的ModTimeFilter调用GetSellerTransactions:
<ModTimeFrom>2006-11-15T00:00:00.000Z</ModTimeFrom>
<ModTimeTo>2006-11-16T00:00:00.000Z</ModTimeTo>
由于此时LastTimeModified进入了ModTimeFilter的范围,transaction会在下面这个同样带有Status的调用中被返回:
<Status>
<eBayPaymentStatus>NoPaymentFailure</eBayPaymentStatus>
<CheckoutStatus>CheckoutComplete</CheckoutStatus>
<LastTimeModified>2006-11-16T15:00:00.000Z</LastTimeModified>
<PaymentMethodUsed>PayPal</PaymentMethodUsed>
<CompleteStatus>Complete</CompleteStatus>
<BuyerSelectedShipping>true</BuyerSelectedShipping>
</Status>
下面的Filter就失效了:
<ModTimeFrom>2006-11-14T00:00:00.000Z</ModTimeFrom>
<ModTimeTo>2006-11-15T00:00:00.000Z</ModTimeTo>
当你设计你的应用时,需要考虑到这些方面并依此建立你的应用。
查看原文