处理应用程序和贝宝之间交易的最佳实践是什么?
考虑:
- 我是 Alice,我想汇款给 Bob
- 在我的数据库中,我看到鲍勃有 200 美元,我想向他发送 150 美元。
- 交易发送后,我想更新 Bob 的帐户,使其包含 50 美元。
现在根据 PayPal API 我可以发送付款并接收成功。然而发生了什么
例如,如果我发送 Pay 它会成功,但由于网络问题我无法收到响应。所以我假设发生了错误并重试,从技术上讲,我将向 Bob 发送 300 美元而不是 150 美元?
我如何处理保存帐户的本地数据库和远程 PayPal API 之间的此类交易?
最近,我对为客户完成的 ASP.NET MVC 项目产生了这样的担忧。
我学到了两件事:
您处理这种情况的方式类似于企业处理个人支票的方式:
- 个人支票看起来像货币(通常也是如此),但许多企业希望在接受付款之前得到银行的某种资金可用验证,因此他们使用一台机器询问银行资金是否实际可用。
- If the machine says the funds are available, the business trusts it and you complete the transaction. However, the machine can give an error message that typically means "the funds are not available or something went wrong" and the business has a decision to make:
- 我们可以信任客户并接受支票,交付产品,并在稍后将支票存入银行时希望得到最好的结果。
- 或者我们可以告诉客户,支票需要一段时间才能清算,存入支票,等待资金实际到达我们的帐户,并在企业收到资金后(如果成功)交付产品。
对于当今许多企业的运营方式来说,这听起来效率很低,但确实会出现这种情况。事实上,这就是为什么许多企业不接受个人支票的原因,与其他付款方式相比,它们不可靠。
现在这与处理 Paypal 付款有何关联?
- Paypal 付款看起来像货币(通常也是如此),但许多企业希望在接受付款之前从 Paypal 进行某种资金可用的验证 - 因此他们使用 Paypal PDT、IPN 或其他方法来检查交易得到了妥善处理。
- If Paypal properly responds to one of the verification requests, the business can trust it and complete the transaction. However, your website may throw an error of some sort (i.e. Paypal could reply with an IPN response of
NOTVALID
, or you could never get a reply from Paypal). The business has a decision to make:
- 企业可以信任客户并接受他们已经进行了 Paypal 付款,一切都应该没问题(对于 Paypal 交易来说,这是一个非常糟糕的决定)
- 或者商家可以在结帐时告诉客户 Paypal 付款可能有 72 小时的处理期。
这听起来可能不是经营业务的最佳方式,但这是我们应对不完善的互联网的方式。
我会设置类似于这样的 Paypal 付款流程:
- 用户 A 希望使用 Paypal 向另一个用户 B 发送 100 美元
- 用户 A 在“结帐字段”中输入值,并将其发送到 Paypal 以验证交易。
- UserA 从 Paypal 发送回您的网站,您的网站使用 Paypal 发布到您网站的详细信息执行 IPN 检查(在本例中我选择了 IPN - 就像我们使用的一样)与 Paypal 提供的其他支付网关相反)。
- 如果 IPN 是
VALID
,按预期处理交易。
- 如果 IPN 不是
VALID
,向客户提及处理可能会出现延迟,让您的应用程序向您发送可能发生 Paypal 交易问题的通知(您可能需要包含一个参考 ID,以便您可以快速找到此通知所引用的交易),并将交易标记为pending
相对于complete
或类似的东西。
- 处理这些通知的网站管理员将手动调查交易(或强制网站再次与 Paypal 核对 - 有关详细信息,请参阅 Paypal API 文档)并手动将交易标记为
complete
or failed
.
- 通知相关人员交易的状态。
令人烦恼的是,我们必须采取额外的步骤来确保资金已转移,但是,正如前面提到的,我们使用的是一个不完善的系统,我们希望非常确定金融交易的成功/失败。
此过程的一个额外好处是,当有人篡改 Paypal 支付系统时,可能会收到通知 - 让您将来能够更好地应对邪恶之徒。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)