iOS拉起微信支付分代码示例:
let req = WXOpenBusinessViewReq()
req.businessType = "wxpayScoreEnable"
req.query = "apply_permissions_token=apply_permissions_token"
req.extInfo = "{"miniProgramType":0}"
WXApi.send(req, completion: nil)
参数apply_permissions_token可以从《商户预授权API》接口的返回参数中获取。
授权协议号是商户自定义生成的,类似商户订单号。
重点步骤说明:
步骤1 用户在商户侧下单购买产品或服务,此时,我们需要先对用户的授权状态进行查询
查询用户授权状态的两种方法:
用户授权状态一共分三种:
UNAVAILABLE:用户未授权服务
AVAILABLE:用户已授权服务
UNBINDUSER:未绑定用户
当查询到用户授权状态为UNAVAILABLE、UNBINDUSER时,请前往步骤二:引导用户开启服务;
当查询到用户授权状态为AVAILABLE时,请前往步骤三:创建支付分订单;
步骤2 引导用户开启授权服务
开启授权有两步操作,第一步:调用后台接口进行预授权,第二步:调用前端方法跳转进入微信中让用户进行授权。
- (第一步)预授权后台接口文档详见:商户预授权API
- (第二步)跳转进入微信授权根据用户使用场景从以下三种方法选择其一:APP场景调起支付分-授权服务、H5场景调起支付分-授权服务、小程序调起支付分-授权服务
请求开启授权之后,我们需要确认开启授权是否成功,共有两种方法:
1、通过接口主动查询(未及时收到用户授权成功通知情况下且用户已回到商家授权页面时商户侧主动查询。)——查询与用户授权记录(openid)、查询与用户授权记录(授权协议号)
2、等待支付分的异步通知——开启/解除授权结果回调通知
若获取到用户的授权状态为AVAILABLE:用户已授权服务,则前往步骤三;
若获取到用户的授权状态为UNAVAILABLE-用户未授权服务、UNBINDUSER-未绑定用户,则商户可根据业务需要选择继续查询或者结束支付分流程,进入商户自己的业务流程。
以上摘录微信开发者文档