PayPal IPN,eBay多行订单ebay_txn_id = 0

时间:2016-02-10 14:34:41

标签: php paypal paypal-ipn ebay ebay-api

我正在构建一个系统,通过网站购物车和eBay交易自动处理我们的PayPal订单。当订单通过eBay发出时,这是一个合并发票订单(通过eBay同时购买多件商品),每件商品的易趣交易ID(ebay_txn_id)为0。

我使用eBay transasction ID获取有关eBay不发送给我们的订单的更多信息,我在IPN中找不到任何可以帮助解决此问题的其他ID。

其他人有这个问题吗?

1 个答案:

答案 0 :(得分:0)

IPN数据中每个购物车项目的item_number是eBay拍卖编号。您可以点击eBay的GetItemTransactions API来提取与该特定商品/拍卖相关的所有交易。

当然,可能会有多个与单个竞价相关联的交易,因此为了确保您获取正确的数据,您可以使用一些XPath。

eBay交易数据包括所调用的PayPal交易ID"外部交易"数据。

我最近在自己的项目中完成了所有这些工作,这就是我过去根据PayPal交易ID提取特定数据的原因。

$DOM = new DOMDocument();
$DOM->loadXML($GetItemTransactionsResponse);
$XPath = new DOMXPath($DOM);
$XPath->registerNamespace("ns","urn:ebay:apis:eBLBaseComponents");

$eBayTransID = $XPath->query("//ns:Transaction[ns:ExternalTransaction/ns:ExternalTransactionID = '" . $txn_id . "']/ns:TransactionID/text()")->item(0)->data;
$shipping_method = $XPath->query("//ns:Transaction[ns:ExternalTransaction/ns:ExternalTransactionID = '" . $txn_id . "']/ns:ShippingServiceSelected/ns:ShippingService/text()")->item(0)->data;
$buyer_feedback_score = $XPath->query("//ns:Transaction[ns:ExternalTransaction/ns:ExternalTransactionID = '" . $txn_id . "']/ns:Buyer/ns:FeedbackScore/text()")->item(0)->data;

所以在那里使用的XPath基本上是说"抓住这个数据,其中ExternalTransactionID = $ txn_id,来自PayPal IPN数据。

所以它可以插在一起,但它会很适合你。