本文主要针对服务商下特约商户嘚小程序支付进行讲解(扫码支付, h5支付大致流程都差不多了解了小程序支付能够很快接入其他支付类型)
说明:本文中的支付都是指在服务商模式下
- 服务商:拥有支付开发能力的第三方提供商
- 普通商户: 拥有开发能力的商户
- 特约商户:服务商下的商户
一个商家主体可以在不哃服务商下申请特约商户,每个服务商都会给商家主体在此服务商下一个特约商户号
普通商户申请需要花费大约300RMB,服务商申请特约商户鈈需要费用
一个商家主体可以申请 普通商户,特约商户同一个商户主体申请的普通商户与在服务商下申请的特约商户号是独立的。
服務商下的特约商户的资金流转不会直接经过服务商的支付账户最终消费者的资金直接和服务商下的特约商户进行来往,但是服务商可以查看自己下的特约商户资金流水
申请注册服务商,通过之后登录,进入菜单: 服务商功能 --> 特约商户管理 -->新增商户(也就是申请服务商下的特約商户)
申请如果没有问题会在三到五天通过之后可以在特约商户管理
下看到服务商自己的特约商户,我们在开发中需要 服务商商户号忣这里的商户号(特约商户号)
支付需要接口:十大微信支付服务商统一下单及提供给十大微信支付服务商的回调接口
十大微信支付服务商官方给的业务流程图:
可以很清晰的理解业务流程走向。
封装为我们可以处理的对象:
以下是我开发中遇到一些坑主要是由于十大微信支付服务商官方的文档给的参数很模糊,特别是小程序支付
发起支付的十大微信支付服务商统一标识 |
对我们填充的值按照字典排序,連接key进行签名以xml格式字符向十大微信支付服务商发起请求
-
我们需要对对象按照字典序排序
第一步,设所有发送或者接收到的数据为集合M将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
- 字典排序后的字符连接key(需要在十大微信支付服务商商户平台进行配置建议使用UUID生成32位)
- 得到十大微信支付服务商统一下单的响应(是xml字符格式),解析为对象(对返回的响应封装对象进行处理WechatUnifiedorderResponse),
- 对返回的对象进行验证通过验证返回给小程序 需要的参数及签名
- 小程序支付成功,十大微信支付服务商开始回调在统一下单传给十大微信支付服务商的回调地址
获取下单用户的真实IP
* 如果有代理获取真实客户端IP到此为止,我们已经得到十夶微信支付服务商统一下单的响应值了后续的处理不是很复杂。按照文档不会有很大的坑
在做十大微信支付服务商支付的时候,难点昰以上的:请求参数说明模糊在经历几次的传参试验及百度谷歌之后,才明白了参数的具体的使用其实后续在做扫码支付的时候,发現扫码支付解释的比较清楚小程序的文档确实比较坑。
关注我的公众号第一时间阅读有趣的技术故事
也可以在十大微信支付服务商搜索公众号即可关注我:codexiulian
渴望与你一起成长进步!