【发布时间】:2011-12-15 15:54:02
【问题描述】:
我有一个使用 Express Checkout 处理付款的应用程序。
在调用 SetExpressCheckout(并让用户在 paypal 的页面上填写他的详细信息)之后以及在我使用 DoExpressCheckoutPayment 实际完成之前,我需要一些方法来取消交易。
我在 paypal 文档中找不到正确的方法,我是让它超时还是需要做一些 API 调用?
【问题讨论】:
我有一个使用 Express Checkout 处理付款的应用程序。
在调用 SetExpressCheckout(并让用户在 paypal 的页面上填写他的详细信息)之后以及在我使用 DoExpressCheckoutPayment 实际完成之前,我需要一些方法来取消交易。
我在 paypal 文档中找不到正确的方法,我是让它超时还是需要做一些 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”阶段,他们将自动被重定向回贝宝以开始新的交易。
【讨论】: