2013-09-10 13 views
0

我在我的PHP下面的代码,我猜intiates贝宝付款:PayPal的paymentExecStatus值

$resArray = CallPay ( $actionType, $cancelUrl, $returnUrl, $currencyCode, $receiverEmailArray, 
         $receiverAmountArray, $receiverPrimaryArray, $receiverInvoiceIdArray, 
         $feesPayer, $ipnNotificationUrl, $memo, $pin, $preapprovalKey, 
         $reverseAllParallelPaymentsOnError, $senderEmail, $trackingId ); 

这似乎在$resArray生成一些支付的具体数据,即:

[responseEnvelope.timestamp]  = 2013-09-10T13:23:42.650-07:00 <- actual value 
[responseEnvelope.ack]    = Success      <- actual value 
[responseEnvelope.correlationId] = CORRELATION_ID_HERE   <- value changed for security reasons 
[responseEnvelope.build]   = BUILD_VALUE_HERE    <- value changed for security reasons 
[payKey]       = GENERATED_KEY_HERE   <- value changed for security reasons 
[paymentExecStatus]     = CREATED      <- actual value 

我然后可以使用[payKey]将用户发送到PayPal网站登录并付款

$cmd = "cmd=_ap-payment&paykey=" . urldecode($resArray["payKey"]); 
RedirectToPayPal ($cmd); 

我的问题是,如果用户没有登录完成付款,是否有可能UNCREATE此记录哪个PayPal有基于[payKey]还是我不需要UNCREATE呢?如果PayPal在一段时间后没有使用,它会自动删除该记录吗?如果是这种情况,PayPal在删除记录前多久保存记录?

https://cms.paypal.com/uk/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_APGettingStarted,它说:

在这个特殊的情况下,paymentExecStatus变量设置为 CREATED,而不是结束,这表明付款 被创建,但尚未执行。

它似乎没有进一步的细节来说明这是否可以不创建,或者它在被移除之前保留多长时间(如果它被移除)。

回答

1

付款密钥一旦创建就无法取消,但它会在3小时后自动过期。

+0

您是否有贝宝文档链接,显示3小时后到期的详细信息? – oshirowanen

+0

https://developer.paypal.com/webapps/developer/docs/classic/api/adaptive-payments/Pay_API_Operation/ 在'payKey'参数下 - “请注意,除非您通过'payKeyDuration重写默认持续时间'请求参数,付款密钥有效** ** 3小时**“。 –