Upay WAP支付开发者文档
对于具有一定开发能力的商户,可以通过对接Upay支付网关来支持WAP支付,让顾客可以直接在商户的网页上进行移动支付,从而拓展商户的线上业务渠道。
1. 业务场景
顾客在支付客户端(如微信)中访问商户的商城页面,选择商品后结账,触发支付控件(如点击支付按钮),支付客户端会弹出支付控件提示用户输入支付密码,用户输入密码后完成支付,商户页面提示交易进行中,在商户获取到支付结果后,在页面上展示支付结果和订单信息。
2. 业务流程
3. WAP接入须知
在对接WAP接口前,请联系收钱吧销售人员填写服务商入网申请资料和测试商户入网资料。入网资料中填写的支付渠道相关参数必须与开发者使用的支付渠道相关参数保持一致。
流程介绍
- 用户访问商户的移动端支付页面,触发支付控件(如点击支付按钮)。
- 支付页面的前端逻辑验证支付参数后,向商户的后端服务器发起创建订单请求。
- 商户后端服务器收到请求后再次验证请求参数,向合码云服务器发起预下单请求。
- 合码云服务器确认请求有效后,向指定的支付渠道发起预下单交易流程。
- 支付渠道同步返回预下单结果。
- 合码云服务器将订单信息和预下单结果返回给商户后端服务器。
- 商户后端服务器将预下单结果返回给自己的前端页面(其中包含唤起支付客户端支付控件所需的支付参数biz_response.data.wap_pay_request)。与此同时,商户后端服务器开始轮询合码云服务器该订单的支付状态。*
- 商户前端页面利用返回结果中的支付参数(biz_response.data.wap_pay_request)唤起客户端支付控件。**
- 用户输入密码,确认支付。
- 商户前端页面收到客户端前端Javascript SDK的回调,开始展示支付进行中的页面。与此同时,前端页面向商户后端服务器发起查询请求(建议使用长连接),等待最终支付结果的返回。
- 商户后端服务器收到前端页面的查询请求,则保持该连接直至从合码云服务器查询到最终支付结果。
- 商户后端服务器返回最终支付结果,前端页面展示支付成功页面和订单信息。
*:wap_pay_request参数说明
字段名 | 变量名 | 必须 | 类型 | 示例值 | 描述 |
---|---|---|---|---|---|
公众账号ID | appid | 是 | String(32) | wx8888888888888888 | 支付渠道分配的公众账号ID |
随机字符串 | noncestr | 是 | String(32) | 5K8264ILTKCH16CQ2502SI8ZNMTM67VS | 随机字符串,不长于32位。推荐随机数生成算法 |
订单详情扩展字符串 | package | 是 | String(32) | WAP | 扩展字段,固定填写WAP |
预支付交易会话标识 | prepayid | 是 | String(64) | wx201410272009395522657a690389285100 | 微信统一下单接口返回的预支付回话标识,用于后续接口调用中使用,该值有效期为2小时 |
签名 | sign | 是 | String(32) | C380BEC2BFD727A4B6845133519F3AD6 | 签名,详见签名生成算法 |
时间戳 | timestamp | 是 | String(32) | 1414561699 | 当前的时间,其他详见时间戳规则 |
详见各支付渠道WAP支付接口说明
**:目前Upay支付网关可以通过异步回调通知或者商户后端服务器进行轮询获取最新订单支付状态,建议使用两者结合的方式去获取交易状态,具体请参考web api预下单接口文档。
*:在前端页面中唤起支付通道控件需要调用支付通道的前端支付接口,请确保您在开发前充分了解各个支付渠道WAP支付的相关业务流程和前端开发接口
3. 接口说明
3.1 预下单
3.1.1 接口地址
{api_domain}/upay/v2/precreate
3.1.2 请求参数
具体请参考合码云支付网关预下单接口文档
3.1.3 特别说明
- 对于WAP支付请求,请求参数中的
sub_payway
的值必须为"3"
,payer_uid
为必填,取值为商户公众号下该用户的open_id; - 对于WAP支付请求,返回结果中的
wap_pay_request
包含了商户支付的前端页面需要唤起支付通道控件所需的必要参数。
3.2 查询
3.2.1 接口地址
{api_domain}/upay/v2/query
3.2.2 请求参数
具体请参考合码云支付网关查询接口文档
3.2.3 特别说明
- 商户后端服务器在得到预下单成功的结果后,即可向合码云服务器发起轮询请求。
- 合码云目前所有预下单的订单有效支付时长约为90秒,若超时仍未支付,合码云会自动取消该订单;因此轮询时间请控制在100-120秒左右。
- 轮询的间隔建议为前30秒内2秒一次,之后5秒一次(注:如果使用回掉,则轮询间隔可以扩大)。
4. 名词解释
公众号WAP:公众号支付是用户在微信或者其他支付渠道中打开商户的H5页面,商户在H5页面通过调用支付渠道提供的JSAPI接口调起微信支付模块完成支付。
--用户在微信或者其他公众账号内进入商家公众号,打开某个主页面,完成支付
--用户的好友在朋友圈、聊天窗口等分享商家页面连接,用户点击链接打开商家页面,完成支付
门店码WAP:
--将商户页面转换成二维码,贴在门店里,消费者扫描二维码后在各种钱包浏览器中打开页面后,输入金额并完成支付