同一终端内应用集成
1. 简介
商家的 POS 应用程序运行在同一个支付终端上时,可以通过 CodePay Register 的支付集成API 拉起结账组件来完成付款。
![同一终端内应用集成结构图](/docs/zh/assets/images/Same-terminalIntegrationOverview2-671f34597a405c9ccb1d1e23ea86992c.png)
1.1 典型处理流程
![同一终端内应用集成交易流程图](/docs/zh/assets/images/WorkflowA-786f61a4671ff7ac07706c9f7d9e3c3e.png)
- POS 应用程序向 CodePay Register 发送订单信息(包括订单号、金额),以拉取支付结账组件。
- CodePay Register 的结账组件收集银行卡信息/移动钱包用户支付凭证并安全地进行处理,然后将其与交易数据中的订单信息合并,并向 CodePay Gateway 发送支付请求。
- CodePay Gateway 处理交易数据包并发送到Processor的支付平台或收单系统。
- Processor的支付平台或收单系统向 CodePay Gateway 响应结果。
- CodePay Gateway 向 CodePay Register 应用程序响应交易结果。
- CodePay Register 应用程序向 POS 应用程序返回交易结果。
1.2 集成方式
POS 应用程序使用 Android Intent 方式与 CodePay Register 应用程序进行交互。以下图表显示了这两个应用程序之间的交互。
![同一终端内应用集成集成方式](/docs/zh/assets/images/IntegrationMethod-e3c66910a944f33133a4f50e4bcc44b2.png)
- 第三方POS应用程序调用 "startActivityForResult" 函数来调用 CodePay Register应用程序。
- CodePay Register应用程序解析来自 POS 应用程序的捆绑数据,然后处理交易。
- 然后,CodePay Register应用程序在交易完成后调用 "setResult" 函数并 "finish" 自己的 Activity。
- POS 应用程序通过 "onActivityResult" 事件接收交易结果。