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