我正在使用PayPal REST来支付:https://developer.paypal.com/webapps/developer/docs/api/
水流本身是相当笔直的:
/v1/payments/payment。/v1/payments/execute的支付现在我发现有点棘手的部分是步骤1-2和4-5。
让我们从第4部分开始,在从PayPal返回时,PayerID和token作为GET参数。PayerID是进行事务的用户的一个很好的标识符,而不是订单(如果他们有很多订单)。因此,token似乎是用来识别顺序的合乎逻辑的东西。
然而..。
在步骤1中创建支付的响应只包含在approval_url末端的approval_url,它嵌套在approval_url中的几个节点上。我设法把它拿出来,以备日后参考之用。因此,它可以用于确定步骤5中要执行的付款。但是,如果PaymentID在返回中,那么执行起来就容易多了。
我想知道我的方法是否准确,还是有更好的方法。我不太确定在用户使用PayPal时是否自己将这些信息存储在会话中,以防这些信息过期。
请你的想法。
发布于 2014-05-12 15:52:27
您实际上不需要存储令牌,因为它只能使用一次,并在3个小时后过期。相反,我所做的是存储生成的paymentId:
$_SESSION['paymentId'] = $return['id'];当它们被重定向到您的登陆页面时,您只需检查以确保这是设置好的,如果没有重定向,则生成一个新的。您甚至需要paymentId来执行付款,或者查找有关支付的信息:
POST /v1/payments/payment/{paymentId}/execute和
GET /v1/payments/payment/{paymentId}将返回选定的运输地址等。
https://stackoverflow.com/questions/23606763
复制相似问题