授权流程有调整——目前都改为:商户预授权
官网未做说明,自己整理的流程(说明:【授权协议号】:自定义的,我用的自己系统的会员ID,我这里是懵逼了半天,微信又没说明这是啥玩意):
1、判断用户是否授权——查询与用户授权记录(授权协议号)API
(说明:已授权过,用户无需再进入支付分授权页面进行授权)
2、未授权则商户预授权——商户预授权API
3、通过商户预授权,返回的预授权token:apply_permissions_token——H5调起支付分-授权服务
4、后续就跟之前差不多——创建支付分订单API、回调等等~~,只是服务商模式参数有调整会多一些参数
官网就只有如下一句话——————???????
首次使用,用户先从商户端(小程序/app/H5),跳入微信支付分页面,进行商户服务的授权
授权成功后,商户即可通过后台接口,进行支付分订单的创建和完结。。
官方文档:支付分开发指引(免确认模式)——可能是新出来的
过程遇到个【签名错误】的极品问题
原因是:api V3秘钥方式下单,正常是用V2的秘钥退款(但是使用了V3的秘钥……还找微信技术咨询搞了半天,尴尬)
目录
关于【需确认订单模式】和【免确认订单模式】的接口说明
支付分的接口分为【需确认订单模式】和【免确认订单模式】两种接口模式。通过本文档,为商户说明两种模板的主要区别。
1、接口调用权限说明
【免确认订单模式】是高级接口权限,目前只支持如下行业调用:
行业/场景 | 说明 |
---|---|
网约车 | 网约车先乘后付 |
共享单车/电单车 | 共享单车/电单车先骑后付 |
娱乐设备 | 娃娃机、K歌亭设备 |
快递 | 快递员用柜、用户寄件 |
充电桩 | 电动汽车/二轮车充电桩 |
预订平台 | OTA,线上订房平台 |
机上购物 | 用户机上离线购物 |
路边停车 | 路边停车 |
出行票务 | 乘车码 |
智慧零售 | 无人货柜、无人商店、扫码购 |
电商 | 极速退款、先用后付 |
除以上行业/场景外,其他行业/场景均只能调用【需确认订单模式】接口。
接口调用权限与服务id相关,在申请服务id时,只有上述场景下的服务id,才有权限调用【免确认单定模式】接口。即只有在上述场景下,创单订单api接口中need_user_confirm字段才能传
false:免确认订单。
2、接口能力差异点
【需确认订单模式】:为订单维度的授权,是单次授权。用户授权了当前这一笔订单后,商户仅能针对当前订单调用一次支付分的订单创建和完结(免密代扣)
【免确认单模式】:为商户服务维度的授权,是长期授权。用户授权了该商户服务后,商户可以通过后台接口进行支付分的订单创建和完结(免密代扣)
3、典型场景说明
【需确认订单模式】典型场景说明:
例如 免押租借场景,均是使用【需确认订单模式】,以租借充电宝为例
用户从商户端(小程序/app/H5),跳入微信支付分页面,即第二步【确认订单】页面,在微信支付分的订单确认页面,进行授权。
授权成功,则成功创建一笔支付分订单(确认订单成功),服务结束后,商户可以调用支付分完结接口,对该笔订单进行完结扣费。
(每次使用,均需跳确认订单页面进行授权)
下次用户需要使用服务(例如再次租借充电宝),用户需要按上面流程,再次进入到【确认订单】页面,进行授权。
【免确认订单模式】典型场景说明:
例如 网约车先乘后付,是使用的【免确认订单模式】
首次使用,用户先从商户端(小程序/app/H5),跳入微信支付分页面,进行商户服务的授权
授权成功后,商户即可通过后台接口,进行支付分订单的创建和完结。用户无需再进入支付分授权页面进行授权。
(后续使用,无需再跳微信支付分页面进行授权)
只要用户没有解除商户服务授权,商户都可以通过后台接口进行创单和完结订单。
4、先免与先享字段选择说明
创单api中,有一个risk_fund 字段,其中name 字段,有先免和先享2种不同值
【先免模式】是指:免押金、免预付款、免保证金等场景,例如免押金租借各类物品,免预付款可先预定定制商品,免保证金可先进行物品拍卖等。 若评估不通过,则可直接在 确认订单页上进行押金/预付款/保证金支付。
例如:
用户支付成功,可以继续进行服务使用。
【先享模式】是指评估不通过,不能通过缴纳费用,继续进行服务使用。例如信用回收,用户评估通过,可先获得部分回收款,若评估不通过,则无法获得。
例如:
用户若评估不通过,只能返回商户。
【需确认订单模式】:可传 先免模式的字段 或 先享模式的字段
【免确认订单模式】:只可传 先享模式字段
(免确认订单模式下,若评估不通过,会创单失败,返回)
{"code":"INVALID_REQUEST","message":"存在未完结订单}
或
{"code":"INVALID_REQUEST","message":"综合评估不通过})
存在未完结订单:指当前用户可能有其他未付款的支付分订单或在其他商户侧创建了过多的支付分订单,本次订单评估有风险,被风控拦截。
综合评估不通过:指因为其他的原因被风控拦截。
5、模式及相关参数解说
【需确认订单模式】:即先免模式(评估不通过可交押金)
对应创建支付分订单风险金额名称name:
DEPOSIT:押金
ADVANCE:预付款
CASH_DEPOSIT:保证金
对应创建支付分订单是否需要用户确认need_user_confirm:
true:需确认订单
对应创建支付分订单用户标识openid是否必填:
需确认订单:不填
【免确认订单模式】:即先享模式(评估不通过不可使用服务)。
对应创建支付分订单风险金额名称name:
ESTIMATE_ORDER_COST:预估订单费用
对应创建支付分订单是否需要用户确认need_user_confirm:
false:免确认订单
对应创建支付分订单用户标识openid是否必填:
免确认订单:必填
微信要求升级说明:
你好,微信支付在2019年8月26日对微信支付分产品进行了迭代升级,相关API接口也进行了收敛升级,旨在提升用户体验,方便商户前期接入与后期统一维护。微信支付分后续开发的新功能都将仅支持新接口的调用,现计划在2020年12月15日下线旧接口,请广大微信支付分的商户于此日期前升级到新接口。如有任何疑问,可通过邮箱wepayTS@tencent.com联系我们。老接口升级指引详见:https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pages/payscoreguide.shtml ;新接口接入流程与开发文档详见:https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pages/payscore.shtml ;支付分升级接口常见问题详见:https://developers.weixin.qq.com/community/pay/doc/000a4a4148409831cb1bcf1b15b008
开发指引(需确认订单)
注意:
• 需用户确认订单,无需使用【授权服务】及【授权/解除授权服务回调通知】。
• 需确认模式调用的所有接口:公共API+需确认模式特有API
用户进入支付场景之后,建议先通过《创建支付分订单》接口获取package。然后通过package引导用户【确认订单】(《确认订单(APP)》、《确认订单(H5)》、《确认订单(小程序)》),如用户确认失败返回商户侧,如用户确认成功,商户提供服务。
业务流程图:
步骤一 商户通过《创建支付分订单》接口,创建订单。
步骤二 若创建订单成功,则请求【确认订单】(《确认订单(APP)》、《确认订单(H5)》、《确认订单(小程序)》)接口,跳入调起支付分小程序。反之,则返回商户页面(商户自己设计逻辑)。
步骤三 跳转至微信支付分小程序,微信支付会校验用户是否符合免押条件,未符合则需要在微信支付分小程序上支付押金。
步骤四 跳入微信支付小程序后,若订单确认成功,微信会通过《确认订单回调通知》接口,主动通知商户。商户也可以通过《查询支付分订单》接口,主动查询订单确认情况。反之,用户未完成订单确认,直接返回到商户页面,则商户可自己设计逻辑。
步骤五 订单确认成功,商户开始为用户提供服务或授权功能。
步骤六 用户结束服务,商户根据实际情况调用《完结支付分订单》接口,或者《取消支付分订单》接口。微信根据《完结支付分订单》接口中传递的扣款金额完成扣款。
步骤七 微信支付扣款成功后,微信会通过《支付成功回调通知》接口立即通知商户。如扣款失败,微信支付会周期性发起扣款请求,直到扣款成功为止。
开发指引(免确认订单)
注意:
• 免确认模式调用的所有接口:公共API+免确认模式特有API
用户进入支付场景之后,建议先通过《查询与用户授权记录》接口确认用户是否可以使用服务。如用户还不能使用服务,需引导用户先【授权服务】(《APP调起支付分-授权服务》、《H5调起支付分-授权服务》、《小程序调起支付分-授权服务》),再创建订单。
业务流程图:
步骤一 商户通过《查询用户授权状态》接口,确认用户是否可使用服务。
步骤二 如用户可使用服务,则请求《创建支付分订单》接口,创建订单。反之,则引导用户【授权服务】(《APP调起支付分-授权服务》、《H5调起支付分-授权服务》、《小程序调起支付分-授权服务》),授权服务成功后微信会通过《授权/解除授权服务回调通知API》接口立即通知商户,在收到授权服务成功通知前,商户也可以通过《查询用户授权状态》接口主动查询用户是否可使用服务。
步骤三 商户创建订单成功后,微信会通过《确认订单回调通知》接口通知商户订单确认情况,收到回调通知后商户开始为用户提供服务或授权功能,在收到订单确认成功通知前,商户也可以通过《查询支付分订单》接口主动查询订单确认情况。
步骤四 用户结束服务,商户根据实际情况调用《完结支付分订单》接口,微信根据《完结支付分订单》接口中传递的扣款金额完成扣款。
步骤五 微信支付扣款成功后,微信会通过《支付成功回调通知》接口立即通知商户。如扣款失败,微信支付会周期性发起扣款请求,直到扣款成功为止。