授权流程调整,目前更改为:商户预授权
官网没有说明,所以我自己编译了一下流程(说明:【授权协议号】:自定义,我用的是自己系统的会员ID,这里困惑了很久,微信也没有说明)这是什么):
1.判断用户是否授权-查询及用户授权记录(授权协议号)API
(注:已授权,用户无需进入支付子授权页面进行授权)
2.若未授权,商户预授权-商户预授权API
3、通过商户预授权,返回预授权:ken - H5激活支付分授权服务
4、后续和之前几乎一样——创建支付子单API、回调等~~,只不过服务商模式参数做了调整,参数会多一些。
官网上只有下面一句话—————? ? ? ? ? ? ?
首次使用时,用户首先从商户端(小程序/app/H5)跳转至微信支付页面,对商户服务进行授权。
授权成功后,商户可以通过后台接口创建并完成支付子订单。 。
官方文件:支付分离开发指南(免确认模式)——可能是新的
在这个过程中,我遇到了【签名错误】的终极问题。
原因是:使用api V3秘钥下单时,正常情况下退款都是使用V2秘钥(但是却用了V3秘钥……并且微信技术咨询了好久,尴尬了)
目录
【需确认下单模式】和【免确认下单模式】界面说明
支付积分界面分为【订单确认模式】和【不确认订单模式】两种界面模式。本文档向商家解释了两种模板之间的主要区别。
1、接口调用权限说明
【免确认下单模式】属于高级接口权限,目前仅支持以下行业的调用:
行业/场景描述
网约车
网约车:先乘车,后付款
共享单车/摩托车
共享单车/摩托车先骑后付费
娱乐设备
爪机、卡拉OK摊位设备
快递
快递柜、用户邮寄
充电桩
电动车/两轮车充电桩
预订平台
OTA,在线预订平台
船上购物
在用户计算机上离线购物
路边停车
路边停车
旅游票务
乘车代码
智慧零售
无人货柜、无人商店,扫码购买
电子商务
快速退款,立即使用,稍后付款
除上述行业/场景外,其他行业/场景只能调用【订单确认模式】接口。
接口调用权限与服务ID相关。申请服务ID时,只有上述场景的服务ID才有权限调用【免确认订单模式】接口。即只有上述场景下,才能传递 api接口中的字段
: 无需确认订单。
2. 接口能力差异
【需要确认订单模式】:针对订单维度的授权,为单次授权。用户授权当前订单后,商户只能调用当前订单一个支付点的订单创建和完成(无暗扣)
【免确认订单模式】:商户服务维度授权为长期授权。用户授权商户服务后,商户可通过后台接口创建并完成支付积分订单(免密码代扣)
3. 典型场景描述
【订单确认模式】 典型场景描述:
例如,在免贷租赁场景中,采用【需确认订单模式】,以充电宝租赁为例。
用户从商户端(小程序/app/H5)跳转到微信支付子页面,即第二步【确认订单】页面,在微信支付子订单确认页面进行授权。
如果授权成功,则支付子订单创建成功(确认订单成功)。服务完成后,商户可以调用支付子完成接口完成订单的扣款。
(每次使用都需要跳转到订单确认页面进行授权)
下次用户需要使用该服务时(例如再次租赁充电宝),用户需要按照上述流程再次进入【确认订单】页面进行授权。
【免确认订单模式】典型场景描述:
例如网约车采用【免确认订单模式】
首次使用时,用户首先从商户端(小程序/app/H5)跳转至微信支付页面,对商户服务进行授权。
授权成功后,商户可以通过后台接口创建并完成支付子订单。用户不再需要进入支付子授权页面进行授权。
(后续使用无需跳转微信支付子页面进行授权)
只要用户没有取消商户服务授权,商户就可以通过后台接口创建并完成订单。
4、先到先得及先到先得的字段选择说明
在创建API中,有一个字段。 name 字段有两个不同的值:-come-- 和-。
【先到先得模式】是指无需押金、无需预付款、无需押金等场景。例如无需押金即可租赁各种物品、无需预付款即可预订定制产品、无需预付款即可先拍卖物品如果评估失败,您可以直接在订单确认页面支付定金/预付款/保证金。
例如:
用户付款成功,可以继续使用服务。
【首次接入方式】是指如果评估失败,用户无法通过付费继续使用服务。例如,如果用户通过信用追偿评估,则可以优先获得部分追偿金。如果用户评价失败,将无法获得。
例如:
如果用户评价不合格,只能退回给商家。
【需要确认下单模式】:可以传入先到先得模式的字段或者先到先得模式的字段
【免确认订单模式】:仅 模式字段可以通过
(免确认订单模式下,如果评估失败,则订单创建失败并返回)
{"code":"INVALID_REQUEST","message":"存在未完结订单} 或 {"code":"INVALID_REQUEST","message":"综合评估不通过})
有未完成的订单:这意味着当前用户可能还有其他未支付的支付子订单或者在其他商户创建了过多的支付子订单。该订单评估有风险,已被风控拦截。
综合评价失败:指因其他原因被风控拦截。
5. 模式及相关参数说明
【需确认订单方式】:先到先得模式(评估不通过可以交定金)
对应支付子订单创建的风险金额名称:
:订金
:预付款
:利润
对应创建支付子订单是否需要用户确认:
true:需要订单确认
对应创建支付子订单是否需要用户ID:
需要订单确认:留空
【免确认订单模式】:此为先到先得模式(评价不合格则无法使用服务)。
对应支付子订单创建的风险金额名称:
:预计订单成本
对应创建支付子订单是否需要用户确认:
:免确认订单
对应创建支付子订单是否需要用户ID:
免确认订单:必填
门户网站
微信需要升级说明:
您好,微信支付于2019年8月26日对微信支付子产品进行了迭代升级,相关API接口也进行了融合升级,旨在提升用户体验,方便商户前期接入和后期统一维护。微信支付未来开发的新功能将仅支持新接口的调用。现计划于2020年12月15日下线旧界面,请微信支付商户在此日期前升级至新界面。如果您有任何疑问,您可以通过电子邮件与我们联系。老界面升级指南请参见:;新接口接入流程及开发文档请参见:;支付积分升级接口常见问题请参见:
开发指南(需确认订单)
注意:
• 需要用户确认订单,无需使用【授权服务】和【授权/取消授权服务回调通知】。
• 确认模式调用的所有接口:公共API+确认模式专用API
用户进入支付场景后,建议通过“创建支付子订单”界面获取。然后引导用户【确认订单】(“确认订单(APP)”、“确认订单(H5)”、“确认订单(小程序)”),如果用户确认失败,则返回商户侧。如果用户确认成功,商户提供。
业务流程图:
第一步:商户通过“创建支付子订单”界面创建订单。
第二步:如果订单创建成功,请求【确认订单】(“确认订单(APP)”、“确认订单(H5)”、“确认订单(小程序)”)接口并跳转到支付子页面小程序。否则返回商户页面(商户自行设计逻辑)。
第三步:跳转至微信支付小程序。微信支付将验证用户是否符合免押金条件。如果没有,用户需要在微信支付小程序上缴纳押金。
第四步:跳转到微信支付小程序后,如果订单确认成功,微信会通过“确认订单回调通知”接口主动通知商家。商户还可以通过“查询支付子订单”界面主动查询订单确认状态。相反,如果用户没有完成订单确认,直接返回商家页面,商家可以自行设计逻辑。
第五步:订单确认成功,商户开始向用户提供服务或授权功能。
第六步:用户结束服务,商户根据实际情况调用“完成支付子订单”接口或“取消支付子订单”接口。微信根据“完成支付子订单”接口中传入的扣款金额完成扣款。
第七步:微信支付扣款成功后,微信会立即通过“支付成功回调通知”接口通知商户。如果扣款失败,微信支付会定期发起扣款请求,直至扣款成功。
开发指南(无需确认订单)
注意:
• 免确认模式调用的所有接口:公共API + 免确认模式专用API
用户进入支付场景后,建议首先通过“查询及用户授权记录”界面确认用户是否可以使用该服务。如果用户仍无法使用该服务,需要先引导用户进入【授权服务】(“APP激活支付点-授权服务”、“H5激活支付点-授权服务”、“小程序激活支付点-授权服务”)激活支付点-授权服务”),然后创建订单。
业务流程图:
第一步:商户通过“查询用户授权状态”界面确认用户是否可以使用服务。
步骤2:如果用户可以使用该服务,则请求“创建支付子订单”接口创建订单。否则,将引导用户进入【授权服务】(“APP调用支付点-授权服务”、“H5调用支付点-授权服务”、“小程序调用支付点-授权服务”)。授权服务成功后,微信将立即通过“授权/取消授权服务回调通知接口”接口通知商户。在收到授权服务成功通知之前,商户还可以通过“查询用户授权状态”接口主动查询用户是否可以使用该服务。
第三步:商户创建订单成功后,微信将通过“确认订单回调通知”接口通知商户订单确认状态。商户收到回调通知后,开始向用户提供服务或授权功能。在收到订单确认成功通知之前,商户还可以通过“查询支付子订单”接口主动查询订单确认状态。
第四步:用户结束服务,商户根据实际情况调用“完成支付子订单”接口,微信根据“完成支付子订单”接口中传入的扣款金额完成扣款。
第五步:微信支付扣款成功后,微信会立即通过“支付成功回调通知”接口通知商户。如果扣款失败,微信支付会定期发起扣款请求,直至扣款成功。