付款相关配置
首先我们在使用微信支付之前需要申请对应的微信APP(公众号,小程序,或者原生APP),不同类型的微信应用对APP的要求也不同。
类型1.微信公众号(服务号)
申请注册地址
注册流程(微信官方文档),注册过程中需要选择服务号(只有服务号才可以进行微信支付),注册时需要完成微信认证(注册之后就是微信认证流程),注册认证后需要修改服务号配置才可以在iVX中使用(微信公众号配置)
第2类:小程序(支付功能需企业认证)
注册地址
注册流程(注册主体类型为企业方可实现支付功能)
小程序注册后需要完成微信认证。微信认证流程
第3类:微信APP移动应用程序
注册地址
请参考文档微信APP步骤1创建微信APP并填写配置信息,应用成功后截图如下
接下来我们以原生APP为例讲解如何开通微信支付。
开通微信支付
1.登录微信开放平台
地址:进入创建的“手机应用”
2.跳转商户平台关联“移动应用”,开通APP支付功能
微信h5支付demo(含退款)
微信小程序支付示例(含退款) 注:本示例使用了阿里巴巴接入信息获取接口,因此需要登录小程序后台“服务器配置”,添加“合法域名”
微信APP安卓支付演示(含退款)
注意:
微信h5支付:需要在商户平台及商品中心的“支付”公众号支付中填写支付授权目录:如上架地址为/play/xxx,则需要填写/play/
付款流程概述
准备好上述账号申请之后,我们就可以开始创建微信支付的逻辑了。无论前端环境如何(公众号H5/小程序/原生APP),微信支付的整体流程基本一致,主要包括以下几个步骤:
1、后台微信组件生成支付订单,并返回支付订单相关的支付信息给前台;
2、前端获取支付信息,并根据支付信息调用支付接口;
3.用户完成/放弃支付;
4、后端收到微信平台通知,获取支付结果;
5、或者后端主动发起订单状态查询请求,获取状态;
6、若需要退款,后台会根据待退款订单发起退款请求,用户收到退款;
在详细讲解每个步骤之前,需要先在配置中心填写信息,三种都需要填写微信商户号(如何获取商户号信息参考地址),微信h5支付、微信小程序支付、微信APP支付根据实际需求选择一种。
步骤 1:生成付款订单
该服务传入客户的 IP 地址并返回商家的订单号和付款信息
在微信H5中生成支付订单:
(需要额外输入)
在APP中生成支付订单:
在小程序中生成支付订单:
(需要额外输入)
注意,生成支付订单时的金额等信息一般都是后端生成的,而不是前端传过来的。比如用户购买商品时,前端一般会传一个商品ID,然后后端通过商品ID获取价格,生成支付订单。否则价格等敏感信息如果从前端传过来会有一定的安全风险。
第二步:在前端打开支付接口
在第一步获取到支付信息之后,我们就可以返回给前端来调用支付接口了。
微信H5中调用方法:
需要前端“微信公众号”组件来调用支付
APP内调用方法:
需要前端“微信APP接口”组件来调用支付
小程序中调用的方法:
步骤3:用户完成/放弃付款
支付接口调出来之后就是用户去支付了,这个步骤是用户和微信应用直接交互的,跟我们的应用没有任何关系。
当用户完成支付后,微信会向预先定义的服务地址发送通知,告知我们支付是否成功。同时,我们也可以主动发起查询请求,通常是轮询请求,来查询微信订单的状态。
注意,虽然前端微信组件提供了“支付成功”和“支付失败”的回调,但是这些回调并不是对实际订单状态的反馈,而是对前端用户行为的反馈。比如,只有用户完成支付并点击“Done”按钮时,才会触发“支付成功”的回调。但如果用户忘记点击“Done”按钮,停留在支付成功的界面,则永远不会触发“支付成功”的回调。但此时用户实际上已经支付完成,后端已经可以收到微信的通知,如果主动查询订单状态,也会返回完成。因此,我们不能依赖前端的回调状态。如果需要在前端反馈支付状态,一般会采用轮询的方式查询订单状态,比如每5秒发起一次请求查询订单状态,一旦返回成功,就跳转到支付成功的界面。
步骤4:后台接收微信支付结果通知
设置公众服务,接收微信通知后,向微信反馈信息
在创建支付信息时回调地址设置为该公共服务地址。
第五步:主动检查订单状态
输入商户订单号,根据创建支付订单的场景选择类型。
第 6 步:退款
输入需要退款的商户订单号以及正确的退款金额
商业付款方式变更
下载演示
1.登录商户平台后,进入商品中心=》我的商品,找到需要变更的企业付款,点击即可。
2. 进入产品设置
3.在API接口中添加ivx服务器IP:52.83.192.50和52.83.157.21
4.支付找零:根据实际情况选择(微信浏览器)或者(小程序),需输入商户订单号(32位随机字符串即可),即可支付到微信用户的找零中。