如何检查MPL中的付款是否已完成?

时间:2013-03-07 08:40:31

标签: paypal

使用PayPal MPL,后端服务器如何检查付款是否已完成? 据我所知,MPL控制整个流程,不需要后端服务器调用 - 但如果服务器需要验证并注册购买完成,该怎么办。

更新首先,感谢您的回答。 我们有两个要求/偏好可以指导我们改进流程:

  1. 付款应尽快确认。客户应在购买后立即访问付费服务。
  2. 对于验证过程,我们应该使用应用程序中的最小证明数据。请考虑以下情形:购买已完成,但后端服务器已脱机 - 因此客户端应用程序需要存储校样数据(事务ID,付款ID)以便稍后验证。但是,如果客户在此期间丢失了证据数据(应用程序重新安装等),那么客户端和后端服务器如何重新同步呢?
  3. 由于 req#1 ,我们不喜欢IPN。根据{{​​3}}:

      
        

    虽然PayPal通常会立即处理IPN消息,但IPN与您网站上的操作不同步。互联网连接并非总是100%可靠,IPN消息可能会丢失或延迟。 IPN服务自动重新发送消息,直到侦听器确认它们。该服务最多会留言4天。     由于IPN不是实时服务,因此您的结帐流程不应等待IPN消息才能完成。如果结账流程取决于接收IPN消息,则可能由于系统负载或其他原因而延迟处理。配置结帐流程以处理可能的延迟。

      

    iOS SDK文档中描述的过程涉及各种API调用以验证付款,但这些调用需要来自客户端应用程序的一些证明数据。但是,如果客户丢失证据数据怎么办? ( req#2 )也许可以在付款之前将证明数据发送到后端?在这种情况下,后端服务器可以存储证明数据,直到它可以被验证。这个过程会是这样的:

    1. 客户端应用启动PayPal付款
    2. 客户端应用将证据数据/付款信息发送到后端服务器
    3. 后端服务器存储付款信息
    4. 客户端应用程序使用PayPal
    5. 完成付款流程
    6. 客户端应用程序通知后端可以验证付款(无需其他数据)
    7. 后端服务器使用步骤2中的数据验证付款。
    8. 为此,我们需要一个带有参数的API调用,该参数在步骤2中可用,但大多数id-s仅在付款完成后才可用。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您应该收到回复,表明付款已完成。但是,如果您想要进行某些验证并在响应之外注册购买完成,则从MPL返回,您可能必须使用API​​调用或IPN。您可以使用API​​调用来检查事务的状态,或使用IPN并连接到数据库并验证订单是否完整。

答案 1 :(得分:0)

请参阅https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/

这些文档适用于今天宣布的新iOS SDK,但旧版MPL的验证应该相同。 (当然希望你会比新的MPL更喜欢新的SDK)