2

我有一个使用 Express Checkout 处理付款的应用程序。

在调用 SetExpressCheckout(并让用户在贝宝的页面上填写他的详细信息)之后以及在我使用 DoExpressCheckoutPayment 实际完成之前,我需要一些方法来取消交易。

我在贝宝文档中找不到正确的方法,我只是让它超时还是需要做一些 API 调用?

4

2 回答 2

1

你只是让它超时。如果您尚未调用 DoExpressCheckoutPayment,则表示尚未执行任何操作。
令牌会在三小时后自动过期。

于 2011-12-15T22:03:57.840 回答
0

从技术上讲,您可以只清空令牌 REQUEST,并取消设置 reshash SESSION 并让它毫无风险地过期(假设您使用的命名变量与 api 示例附带的相同。您使用的是什么语言?我可以进一步提供示例。

在 PHP 中,我会简单地做:

// empty token
$_REQUEST['token'] = NULL;

//unset reshash session
$_SESSION['reshash'] = NULL;
unset($_SESSION['reshash']);

现在您最好将用户重定向到取消页面,例如

header( 'Location: http://www.example.com/transactionCancelled.html' ) 

否则,取决于用户是否处于“ReviewOrder”阶段,他们将自动被重定向回贝宝以开始新的交易。

于 2012-07-06T04:10:19.237 回答