0
我在我的网站上设置了一个支付系统,其工作方式如下。Paypal API待付款
买方购买物品我做一个SetExpressCheckout调用,返回成功或失败。成功时,我会使用返回的令牌进行提交。在提交成功后,我会将该项目标记为已售出或扣除数量。
我遇到的问题是我现在的程序工作,如果该交易完成后没有挂起状态,但为了处理未决的项目怎么做,如果用户有任何未决项目的下列
检查
$sql = "SELECT * FROM basket_items WHERE status = 'pending' AND userID = '$user_id'";
$pending_items = queryArray($sql);
foreach($pending_items as $item){
$token = $item['token'];
//get status of the pending transaction
$transaction_details = GetExpressCheckoutDetails($token);
$trans_status = $EXP_CHECK_DETAILS['CHECKOUTSTATUS'];
if($trans_status == 'completed'){
MarkItemSold($item['id']);
}
}
此过程的问题是,如果具有未决授权操作的买方/卖方花费超过3小时,令牌无效。因此,我留下2个查询
如何在令牌过期后处理完成的交易而不尝试再次购买物品?
我可以从getTransactionDetails获取买家邮寄地址吗?
感谢
作为直接购买处理交易,但取决于卖家贝宝设置,它可能需要授权,因此等待 –
我读了一些其他问题,transactionID在3小时后过期 –
我需要IPN监听器吗? –