gpt4 book ai didi

php - Paypal API 待处理付款

转载 作者:太空宇宙 更新时间:2023-11-03 16:34:49 25 4
gpt4 key购买 nike

我在我的网站上设置了一个支付系统,其工作方式如下。

买家购买商品 我调用 SetExpressCheckout 返回成功或失败。成功后,我使用返回的 token 进行提交。提交成功后,我会将商品标记为已售出或扣除数量。

我遇到的问题是,如果交易完成且没有待定状态,我当前的程序会起作用,但为了处理待定项目,我执行以下操作

检查用户是否有任何待处理的项目

$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 小时,则 token 无效。所以这给我留下了 2 个查询

  1. 如何在 token 过期后处理完成的交易而不尝试再次购买该商品?

  2. 我可以从 getTransactionDetails 获取买家的邮政地址吗?

谢谢

最佳答案

改为尝试调用 GetTransactionDetails API。如果您提交了 DoExpressCheckoutPayment 调用,您将获得一个交易 ID,您可以使用它来查找付款。响应将告诉您 PayPal 中的交易状态并为您提供送货地址(如果在原始交易期间提供或请求)。

交易 ID 不会过期。

不过,我不确定我是否 100% 了解您的流程。您是否作为授权处理交易?

关于php - Paypal API 待处理付款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16835993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com