开发指引
更新时间:2025.10.161、开发前准备
1.1、设置安全联系人
微信支付日常安全监测发现技术异常时,会向安全联系人和超级管理员发送风险提醒。请商户超级管理员尽快设置技术同事为安全联系人,确保能及时接收异常信息评估业务风险,详见安全联系人设置指引。
1.2、熟悉微信支付接口规则
1.3、准备开发参数
在发起接口请求时,开发者还需传入一些必要参数,如服务商商户号、子商户号(也叫特约商户号)、sp_appid、证书私钥、公钥等,获取方式详见:服务商模式开发必要参数说明。
2、整体业务开发流程概览
|
用户选择微信分付支付的时序图如下所示(如果用户选择的是微信支付,时序保持不变,没有在下图展示),在当前接入微信支付的时序上新增1个交互接口,修改4个交互接口,以红线标识。
当用户查看商品详情页时,商户系统会查询微信支付系统以获取支付方式的曝光建议(步骤1.2,参考获取微信分付曝光建议),根据结果决定是否前置曝光微信分付。
用户选择微信分付支付方式付款,商户系统调用微信支付系统下单(步骤1.6,参考JSAPI/小程序下单,APP下单,JSAPI/小程序合单下单,APP合单下单),获取预支付交易会话标识 prepay_id 。下单时可以传递一个参数 subsidy_info 表示商户支持的贴息方案,定义如下。如果商户决定不贴息就不需要传该参数。
字段名 | 类型 | 是否必填 | 如何传递 | 描述 |
|---|---|---|---|---|
subsidy_info | object | 否 | Body | 贴息信息 |
subsidy_info 结构如下
字段名 | 类型 | 是否必填 | 如何传递 | 描述 |
|---|---|---|---|---|
subsidy_detail | array | 否 | Body | 贴息详情 |
subsidy_detail 结构如下
字段名 | 类型 | 是否必填 | 如何传递 | 描述 |
|---|---|---|---|---|
subsidy_period_type | string | 是 | Body | 必填 "PERIOD" |
subsidy_plan | array | 是 | Body | 贴息方案 |
subsidy_plan 结构如下
字段名 | 类型 | 是否必填 | 如何传递 | 描述 |
|---|---|---|---|---|
subsidy_installment_num | int | 是 | Body | 贴息期数,只能填3、6或12. |
subsidy_percent | int | 是 | Body | 贴息比例,只能填0或者100。0表示不贴息,100表示免息。 |
例如,商户支持对3期和6期免息传递参数如下:
商户在调起微信支付(步骤1.8,参考JSAPI调起支付,小程序调起支付,APP调起支付)时,需通过一个扩展参数传递用户选择的支付方式,具体传参规则如下:
JSAPI支付和小程序支付场景:
若用户选择的是微信分付的随时还,参数 package为prepay_id=*&subsidy_period_type=DAILY,其中 prepay_id 的值传下单接口获取的“预支付交易会话标识”;
若用户选择的是微信分付的分期还,参数 package为prepay_id=*&subsidy_period_type=PERIOD&selected_installment_number=*, 其中 selected_installment_number 填用户选择的还款期数。
APP支付场景:
若用户选择的是微信分付的随时还,参数 packageValue为Sign=WXPay&SubsidyPeriodType=DAILY;
若用户选择的是微信分付的分期还,参数 packageValue为Sign=WXPay&SubsidyPeriodType=PERIOD&SelectedInstallmentNumber=*, 其中 SelectedInstallmentNumber 填用户选择的还款期数。
微信支付通知支付结果时包括商户贴息信息(步骤1.11,参考JSAPI支付通知,小程序支付通知,APP支付通知,合单支付通知),在resource解密后字段中新增如下字段表示支付时使用的商户贴息信息。
字段名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
installment_info | object | 否 | 为商户贴息的订单并且支付成功才有以下字段。 |
installment_info 结构如下
字段名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
use_subsidy | bool | 是 | 是否使用了商户贴息 |
selected_installment_number | int | 是 | 用户实际选择分期期数 |
商户也可以通过商户订单号查询支付结果(步骤1.14,参考JSAPI支付查单,小程序支付查单,APP支付查单,合单查单),并返回如下字段表示支付时使用的商户贴息信息。
字段名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
installment_info | object | 否 | 为商户贴息的订单并且支付成功才有以下字段。 |
installment_info 结构如下
字段名 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
use_subsidy | bool | 是 | 是否使用了商户贴息 |
selected_installment_number | int | 是 | 用户实际选择分期期数 |
