2012-09-21 51 views
8

它返回的贝宝Token ID(即:EC-XXXXXXXXXXXXXXXXX),总是唯一的?我怀疑它会是什么?但我正在做的是,我将它插入到我的交易表中,以验证此交易是否已经处理。贝宝的令牌ID是否唯一?

我知道交易ID也可以工作,但问题是,即使使用PayPal API方法(如GetExpressCheckoutDetailsDoExpressCheckout)之前,令牌ID也会先返回。

请让我知道你认为最好的,从你自己的经验。

谢谢

+1

听起来就像你想使用交易ID来识别交易。从名字上来看,令牌可能是用于安全的随机数,并不保证是唯一的。 – bdares

回答

7

令牌是唯一的,但它只代表会话,这就是它首先返回的原因。它并不表示一个完整的交易,你不应该为此存储它。我不建议将它存储以供将来使用,因为PayPal不会使用它来识别退款等事务(至少我曾见过)。

我建议您只使用令牌来管理从SetExpressCheckout -> GetExpressCheckoutDetails -> DoExpressCheckoutPayment开始的实际结帐流程,然后将从DoExpressCheckoutPayment返回的TransactionID存储为您的“交易完成”指示符。您也应该检查PaymentStatus退货,因为eChecks不会立即将钱存入您的帐户。

+0

感谢您的回复,我以为非常相似。我使用的原因是我可以阻止多次刷新尝试,你认为这是一个好主意吗? – Zubair1

+0

'例如:'用户只需点击确认按钮,在下一页他的预定成功,他的预定和交易信息被成功存储。但是,如果用户刷新页面,它会导致一些错误,如重复交易ID错误,因为我在MySQL中设置了具有唯一索引的列。它仍然会插入预留数据,因为它的主键是在预留数据插入到MySQL时生成的唯一预留代码。 – Zubair1

+0

我想我只是意识到这不是一个好主意,在我的情况也如此。所以感谢您为我解决困惑。 – Zubair1

0

交易ID是唯一的交易。 令牌ID是为检查创建的数字是否正确的交易ID。