PHP 电子商务 API - 付款流程

Posted

技术标签:

【中文标题】PHP 电子商务 API - 付款流程【英文标题】:PHP Ecommerce API - Payment process 【发布时间】:2016-11-01 05:27:09 【问题描述】:

我正在开发一个具有产品、目录、订单等所有功能的电子商务 API……我被困在如何处理支付网关,如 ccavenue、payumoney……等这些支付网关重定向到银行网站进行身份验证所以我无法用 API 处理这个。有人请帮我在电子商务 API 系统中进行支付流程吗?

提前致谢。

【问题讨论】:

他们都提供沙箱(即测试环境),您是否尝试向这些提供者询问测试环境? 不...我问我们如何向外部用户提供支付流程的 API 调用 我明白了,简短的回答是:不,你不能盲目地代理这些调用 【参考方案1】:

通常当网关将浏览器重定向到他们的网站时,您必须执行以下操作:

用户点击结帐后:

创建处于待处理状态的订单 生成交易 ID 或仅使用订单 ID 将交易 ID/订单 ID 与请求一起发送到网关

网关完成并将浏览器重定向到您的站点后

获取状态 [成功/失败] 获取交易ID/订单ID

[网关必须返回事务 ID 你提供它]

使用IDStatus更新订单/交易

重要

一些客户会直接关闭网关页面而不继续该过程,, 所以几天后你会收到很多挂单,库存也会减少。

要解决此问题,您应该在每个 1 hour for example 运行 cron 作业 .. 它将取消超过 10 分钟创建的任何挂单,并重新入库产品

另一种解决方案:

一些网关要求你给他们确认 URL .. 交易完成后 .. 他们将结果发送到你的确认 URL ,所以你必须在你的站点中开发 API 来处理这个确认响应,在这个即使用户在完成交易后浏览器出现问题并且无法重定向回您的网站..他也会获得成功订单

编辑

好的,那么您在事务生命周期中有三个方面

1- 客户网站:我们称之为caller

2- 您的 API 提供者:将调用它 API

3- 最后是网关

所以请记住,如果不在 API 端保存一些信息,此过程将无法成功完成

流程如下

调用者将创建处于待处理状态的订单

调用者会将交易信息发送到您的 API,此信息必须具有返回 URL + 交易 ID

API 会将接收到的信息保存在其 DB 中并向网关生成另一个请求,此请求必须具有 返回 URL + 事务 ID

网关完成后,它将重定向到您的 API,您的 API 将提取结果并将其返回给调用方返回 URL

调用者将收到响应,提取结果,更新订单

重要:

如果你想保持调用者和网关之间的进程

案例 A:

通常网关通过返回html表单+ JS脚本重定向用户,该脚本将在呈现此html时提交表单..

所以在这种情况下..不要打印 html repose 并将其返回给调用者,让他打印它..所以在这种情况下重定向将在调用者和网关之间发生

案例 B:

让您的 API 准备请求和端点,然后将此数据返回给调用者 让调用者将此请求发送到网关 网关将响应返回给调用者 调用者将响应发送到 API 以提取结果 API 将向调用者返回最终结果 来电者将更新订单

【讨论】:

感谢您的回答。您是我喜欢的另一个解决方案...您添加了一些我希望在下一个问题中提出的额外信息...但是这里有一个问题是...我们无法从 API 系统请求支付网关...我们已从用户服务器(使用我们的 API)和支付网关仅向用户服务器返回数据...... API 系统不会从支付网关获得直接通知......对吗?那么有什么办法可以解决这个问题......我希望你能理解......是吗? hummm 让我为你发布另一个答案【参考方案2】:

所有支付网关都有一个字段来传递您的自定义值/订单 ID。他们会给你返还那个价值。查看他们的文档。还要查找通知字段。

【讨论】:

嗨米奇,您可能正在谈论 2checkout 流程。但是有些支付网关在用户必须通过银行网站进行身份验证之前不会返回值。

以上是关于PHP 电子商务 API - 付款流程的主要内容,如果未能解决你的问题,请参考以下文章

在 PayPal 的 REST API 中执行付款后,有时我没有收到电子邮件

PayPal API 休息和商家电子邮件帐户

php 根据支票付款将新收件人添加到管理新订单电子邮件。

接收订单详情和付款确认(电子商务网站)[关闭]

java实现在线支付

Paypal API 直接:买方到卖方付款