成功付款后退回个人识别码

时间:2014-05-22 12:44:46

标签: paypal paypal-ipn paypal-sandbox

我目前正在尝试实施一种机制,我可以将客户返回到包含激活PIN的成功页面,从而允许访问某个软件。该过程是直接购买PIN,不涉及任何类型的用户帐户或登录系统。

我有付款按钮和IPN脚本,并且工作正常,但这只允许我在通过IPN脚本成功付款后通过电子邮件发送PIN,因为当然这两个会话是完全独立的,以保持安全。

我的问题是,我无法确定客户是否可以访问他们过去通过Paypal支付的同一封电子邮件。我想让用户在Paypal重定向之前输入他们希望将PIN发送到哪个电子邮件,然后将其作为自定义值发送..但随后出现了大量支持电子邮件积压的用户已进入错误的电子邮件。我真的希望能够重定向到包含PIN的成功页面。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我建议使用Express Checkout API。付款人体验与标准付款按钮非常相似,但用户始终保证返回您的网站,这样您就可以在最终页面上显示您想要的任何内容。

该文档可能有点可怕,但它实际上只是利用3个API调用的问题。

  • SetExpressCheckout - 这用于设置新的交易,并返回一个令牌,您将其附加到重定向网址的末尾,并附加到PayPal。用户被发送到PayPal,他们登录并同意付款,然后发回您在此请求中指定的ReturnURL。
  • GetExpressCheckoutDetails - 现在回到您的网站/应用程序,您可以使用此API获取有关买家的信息,例如他们的送货地址,地址状态,付款人状态,付款人ID等。您需要付款人ID最后的API调用。
  • DoExpressCheckoutPayment - 这与SetExpressCheckout请求非常相似,但在此调用完成之前没有完成任何事务。只有这样,钱才会移动。

同样,这些最终调用是在您的网站上完成的,因此您可以使用API​​响应数据更新数据库并在最终页面上显示详细信息。

请注意,由于某种原因,付款仍可能有待处理,因此您需要检查状态(在DECP响应中返回)并在最终页面上显示相应的信息。

仍然会使用快速结账触发IPN,因此您可以调整IPN脚本以处理待处理的付款或您可能希望在结帐流程之外自动执行的任何其他操作。

如果您正在使用PHP,我class library for PayPal会让您快速轻松地拨打这些电话。