开发指引

更新时间:2025.03.10

1、开发前配置

开发前,开发者需要完成如下两个步骤:配置开发参数和配置产品功能。

 

1.1、设置安全联系人

微信支付日常安全监测发现技术异常时,会向安全联系人和超级管理员发送风险提醒。请商户超级管理员尽快设置技术同事为安全联系人,确保能及时接收异常信息评估业务风险,详见安全联系人设置指引

1.2、熟悉微信支付接口规则

正式进入开发前,开发者需要先阅读基本规则签名和验签规则了解调用微信支付接口的基本规则和签名规则。

1.3、准备开发参数

在发起接口请求时,开发者需传入必要参数,如商户号、appid、密钥及证书序列号等,获取方式详见:普通商户模式开发必要参数说明

1.4、配置产品功能

在使用商家转账时,必须设置请求来源IP 。仅设定IP可调用商家转账API,具体可详见:设置接口安全IP

 

2、 详细开发指引

2.1、整体业务开发流程概览

  • 当用户通过商户提供的入口申请提现后,商户系统同步调用发起转账API接口申请转账,商户再根据返回参数拉起用户确认收款页让用户确认收款。

  • 用户确认收款前,如需取消转账,商户可调用撤销转账API接口撤销转账。用户确认收款后,由微信支付执行转账操作。最后通过商家转账回调或者查询转账单获取转账结果。如需要电子回单,也可通过申请电子回单API接口和查询电子回单API接口获取

 

2.2、详细开发步骤说明

2.2.1、商户发起申请转账

当用户申请提现时,商户需调用发起转账API接口发起申请转账。在接口参数中,商户需要通过transfer_scene_report_infos字段上传转账场景报备背景信息,不同的场景有不同的传值要求,详见:转账场景报备信息字段传参说明

需要注意以下几点:

 

  • 当返回商户订单状态为ACCEPTED时,需要检查商户资金是否足够,并一定要使用原商户单号及原参数重试,否则可能造成重复转账等资金风险。

  • 发起转账的appid参数,请按照实际调起用户确认收款APP/小程序/公众号的appid进行传参。

  • 当返回错误码为“SYSTEM_ERROR”时,请不要更换商户单号,一定要使用原商户单号及原参数重试,否则可能造成重复转账等资金风险。

  • 接口返回的HTTP状态码不为200时,请商户务必不要立即更换商户订单号重试。可根据错误码列表中的描述和接口返回的信息进行处理,并在查询原订单结果为失败或者联系客服确认情况后,再更换商户订单号进行重试。否则会有重复转账的资金风险。

2.2.2、商户调起请求用户确认收款。

商户调用发起转账API接口申请转账受理成功后,会获取到用于拉起确认收款页面的关键参数"package_info",当订单状态为WAIT_USER_CONFIRM时,商户需根据自己使用商家转账的载体选择对应API接口拉起用户确认收款页,移动应用类型使用APP调起用户确认收款,公众号及小程序类型使用JSAPI调起用户确认收款

下面介绍在转账过程中的异常处理情况:

  • 在用户确认收款之前,若发现用户已通过其他方式收款,可通过调用撤销转账API接口撤销转账。撤销接口返回成功仅表示撤销请求已受理,系统会异步处理退款等操作,需以最终查询转账单返回的状态为准

  • 当前商户单号单据状态已到达终态时,不可再用该单号请求用户确认收款;如需再次转账,需更换单号。

调起用户确认收款需要注意的参数:

package:商家转账付款单跳转收款页package信息,对应的是发起转账API接口应答参数中的package_info

2.2.3、用户确认收款

用户完成确认收款后,微信支付会向商户发送商家转账回调通知,告知转账结果。商户也可通过商户单号查询转账单API接口微信单号查询转账单API接口主动查询获取转账结果

 

需要注意以下几点:

  • 如果查单接口遇到新的错误码,请务必不要换单重试,请联系客服确认转账情况

  • 使用商户单号查询转账单API微信单号查询转账单API接口只支持查询最近30天内的商家转账订单,超过30天需通过资金账单对账确认。获取资金账单的方式可参考附录中的获取账单和电子回单

  • 在资金账单中,微信支付业务单号资金流水单号对应的是transfer_bill_no微信转账单号,业务凭证号对应的是out_bill_no商户单号,资金账单中的收支类型仅有支出时可认为是转账成功。

2.2.4、申请电子回单(按需使用)

2.3、订单状态流转图

1、从转账单据创建成功后开始计算,如果用户24h内未确认收款,系统会自动关单并退款至商户资金。系统关单时间可能超过24小时,商户需通过查询商家转账单接口核实转账单是否已成功关闭,若该笔转账单还未关闭,请勿换单发起转账,商户也可通过撤销转账API接口主动撤销该订单。

2、以下三个状态为终态

  • SUCCESS: 转账成功

  • FAIL: 转账失败

  • CANCELLED: 转账撤销完成