|
@@ -3,7 +3,7 @@
|
|
|
**适用对象**:用户端 App(uni-app)前端开发人员
|
|
**适用对象**:用户端 App(uni-app)前端开发人员
|
|
|
**接口版本**:`specs/020-omg-payment-rebuild` 新实现
|
|
**接口版本**:`specs/020-omg-payment-rebuild` 新实现
|
|
|
**当前环境**:OMG 测试环境
|
|
**当前环境**:OMG 测试环境
|
|
|
-**支付方式**:信用卡、Apple Pay
|
|
|
|
|
|
|
+**支付方式目标**:OMG 官方页面优先展示信用卡、Apple Pay
|
|
|
**更新时间**:2026-08-14
|
|
**更新时间**:2026-08-14
|
|
|
|
|
|
|
|
> 本文只描述当前新 OMG 实现。`specs/016-omg-payment` 中的旧 Controller、旧流水、旧退款和旧前端文档已经退役,不得作为接入依据。
|
|
> 本文只描述当前新 OMG 实现。`specs/016-omg-payment` 中的旧 Controller、旧流水、旧退款和旧前端文档已经退役,不得作为接入依据。
|
|
@@ -19,6 +19,8 @@ OMG 是网页托管式收银台,App 不需要接入 OMG SDK。前端只需要
|
|
|
5. App 结果页取得 `ddId`,调用 `POST /pay/omg/query` 确认最终支付状态。
|
|
5. App 结果页取得 `ddId`,调用 `POST /pay/omg/query` 确认最终支付状态。
|
|
|
6. 只有 query 返回 `status = "PAID"` 才能展示支付成功。
|
|
6. 只有 query 返回 `status = "PAID"` 才能展示支付成功。
|
|
|
|
|
|
|
|
|
|
+本次渠道过滤由后端表单完成。App 顶层仍然只显示“OMG 支付”和“LINE Pay”,不增加“信用卡/Apple Pay”二级选择页面,也不接入原生 Apple Pay SDK。
|
|
|
|
|
+
|
|
|
当前测试环境不支持退款。`POST /pay/omg/refund` 只会返回“测试环境不支持退款”,不会发起真实退款,也不会修改订单。
|
|
当前测试环境不支持退款。`POST /pay/omg/refund` 只会返回“测试环境不支持退款”,不会发起真实退款,也不会修改订单。
|
|
|
|
|
|
|
|
## 2. 整体流程
|
|
## 2. 整体流程
|
|
@@ -34,7 +36,7 @@ OMG 是网页托管式收银台,App 不需要接入 OMG SDK。前端只需要
|
|
|
|
|
|
|
|
|
|
| 当前 WebView 原样 Form POST
|
|
| 当前 WebView 原样 Form POST
|
|
|
v
|
|
v
|
|
|
-[OMG 测试收银台:信用卡 / Apple Pay]
|
|
|
|
|
|
|
+[OMG 测试收银台:优先显示信用卡 / Apple Pay]
|
|
|
|
|
|
|
|
|
|
+-------------------------------+
|
|
+-------------------------------+
|
|
|
| |
|
|
| |
|
|
@@ -174,8 +176,8 @@ token: <用户登录 token>
|
|
|
"ItemName": "Order 991786433092835",
|
|
"ItemName": "Order 991786433092835",
|
|
|
"ReturnURL": "https://foodieapi.waimai-paotui.com/pay/omg/notify",
|
|
"ReturnURL": "https://foodieapi.waimai-paotui.com/pay/omg/notify",
|
|
|
"OrderResultURL": "https://foodieapi.waimai-paotui.com/pay/omg/result",
|
|
"OrderResultURL": "https://foodieapi.waimai-paotui.com/pay/omg/result",
|
|
|
- "ChoosePayment": "Credit",
|
|
|
|
|
- "UnionPay": "2",
|
|
|
|
|
|
|
+ "ChoosePayment": "ALL",
|
|
|
|
|
+ "IgnorePayment": "ATM#CVS#BarcodeATM",
|
|
|
"EncryptType": "1",
|
|
"EncryptType": "1",
|
|
|
"InvoiceMark": "N",
|
|
"InvoiceMark": "N",
|
|
|
"NeedExtraPaidInfo": "Y",
|
|
"NeedExtraPaidInfo": "Y",
|
|
@@ -194,8 +196,8 @@ token: <用户登录 token>
|
|
|
| `formFields` | object | 所有键值都必须原样创建为隐藏 input 并 POST |
|
|
| `formFields` | object | 所有键值都必须原样创建为隐藏 input 并 POST |
|
|
|
| `MerchantTradeNo` | string | 后端生成的 OMG 交易编号;前端只透传,不作为业务订单号 |
|
|
| `MerchantTradeNo` | string | 后端生成的 OMG 交易编号;前端只透传,不作为业务订单号 |
|
|
|
| `TotalAmount` | string | 后端根据订单金额生成;前端不得修改 |
|
|
| `TotalAmount` | string | 后端根据订单金额生成;前端不得修改 |
|
|
|
-| `ChoosePayment` | string | 当前固定 `Credit`,包含信用卡与 Apple Pay |
|
|
|
|
|
-| `UnionPay` | string | 当前固定 `2`,隐藏银联选项 |
|
|
|
|
|
|
|
+| `ChoosePayment` | string | 当前固定 `ALL`,使用 OMG 官方付款方式选择页面 |
|
|
|
|
|
+| `IgnorePayment` | string | 当前固定 `ATM#CVS#BarcodeATM`,由 OMG 隐藏 ATM、CVS 和 BarcodeATM;前端不得修改 |
|
|
|
| `ReturnURL` | string | OMG 服务端付款通知地址;前端不调用 |
|
|
| `ReturnURL` | string | OMG 服务端付款通知地址;前端不调用 |
|
|
|
| `OrderResultURL` | string | OMG 浏览器付款结果地址;前端不直接调用 |
|
|
| `OrderResultURL` | string | OMG 浏览器付款结果地址;前端不直接调用 |
|
|
|
| `CheckMacValue` | string | 表单签名;修改任意已签名字段都会导致 OMG 拒绝 |
|
|
| `CheckMacValue` | string | 表单签名;修改任意已签名字段都会导致 OMG 拒绝 |
|
|
@@ -646,7 +648,7 @@ token: <用户登录 token>
|
|
|
10. `tradeNo`、`merchantTradeNo` 始终按字符串处理,不转换为 JavaScript Number。
|
|
10. `tradeNo`、`merchantTradeNo` 始终按字符串处理,不转换为 JavaScript Number。
|
|
|
11. query 会访问 OMG 网关,不做高频轮询。
|
|
11. query 会访问 OMG 网关,不做高频轮询。
|
|
|
12. `PAYMENT_ATTEMPT_EXISTS` 不能靠重复调用 create 解决,应进入 query 确认流程。
|
|
12. `PAYMENT_ATTEMPT_EXISTS` 不能靠重复调用 create 解决,应进入 query 确认流程。
|
|
|
-13. 当前测试收银台只开放信用卡与 Apple Pay,不实现 ATM、CVS、BarcodeATM、银联、延期付款或取号页面。
|
|
|
|
|
|
|
+13. 后端通过 `ChoosePayment=ALL` 与 `IgnorePayment=ATM#CVS#BarcodeATM` 优先保留信用卡和 Apple Pay。OMG 官方公开参数不能隐藏 AFTEE;如果门店开通 AFTEE,需要以 stage 页面实测结果为准。
|
|
|
14. 当前没有真实退款能力。
|
|
14. 当前没有真实退款能力。
|
|
|
|
|
|
|
|
## 10. App 验收清单
|
|
## 10. App 验收清单
|
|
@@ -659,7 +661,7 @@ token: <用户登录 token>
|
|
|
- [ ] create 成功后,当前完整 WebView 使用 Form POST 打开 `gatewayUrl`。
|
|
- [ ] create 成功后,当前完整 WebView 使用 Form POST 打开 `gatewayUrl`。
|
|
|
- [ ] 所有 `formFields` 原样提交,`gatewayUrl` 不作为 input。
|
|
- [ ] 所有 `formFields` 原样提交,`gatewayUrl` 不作为 input。
|
|
|
- [ ] 没有 iframe、GET 跳转或新窗口。
|
|
- [ ] 没有 iframe、GET 跳转或新窗口。
|
|
|
-- [ ] 测试收银台显示正确金额,并只提供信用卡/Apple Pay 范围。
|
|
|
|
|
|
|
+- [ ] 测试收银台显示正确金额,信用卡与 Apple Pay 可用,ATM/CVS/BarcodeATM 已隐藏;如果门店开通 AFTEE,记录它是否仍显示。
|
|
|
|
|
|
|
|
### 10.2 App 返回与状态确认
|
|
### 10.2 App 返回与状态确认
|
|
|
|
|
|