我有一个使用 Express Checkout 处理付款的应用程序。
在调用 SetExpressCheckout(并让用户在贝宝的页面上填写他的详细信息)之后以及在我使用 DoExpressCheckoutPayment 实际完成之前,我需要一些方法来取消交易。
我在贝宝文档中找不到正确的方法,我只是让它超时还是需要做一些 API 调用?
我有一个使用 Express Checkout 处理付款的应用程序。
在调用 SetExpressCheckout(并让用户在贝宝的页面上填写他的详细信息)之后以及在我使用 DoExpressCheckoutPayment 实际完成之前,我需要一些方法来取消交易。
我在贝宝文档中找不到正确的方法,我只是让它超时还是需要做一些 API 调用?
你只是让它超时。如果您尚未调用 DoExpressCheckoutPayment,则表示尚未执行任何操作。
令牌会在三小时后自动过期。
从技术上讲,您可以只清空令牌 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”阶段,他们将自动被重定向回贝宝以开始新的交易。