开发指引
更新时间:2023.12.19# 1. 接口规则
为了在保证支付安全的前提下,带给商户简单、一致且易用的开发体验,我们推出了全新的微信支付APIv3接口。该版本API的具体规则请参考“APIv3接口规则 (opens new window)”。
# 2. 开发环境搭建
为了帮助开发者更好的调用接口,我们提供微信支付APIv3官方SDK (opens new window),请根据自身开发语言,选择对应的SDK库集成到项目。
目前微信支付提供JAVA、PHP、GO三种语言版本的SDK,封装了签名生成、签名验证、敏感信息加/解密、媒体文件上传等基础接口功能。
SDK | 说明 |
---|---|
wechatpay-java (opens new window) | Java 服务端 SDK |
wechatpay-php (opens new window) | PHP 服务端 SDK |
wechatpay-go (opens new window) | GO 服务端 SDK |
如下通用基础功能接口,已经在SDK中完成封装,可替换相关参数后快速测试。
若使用的编程语言无对应的SDK,则需要按照接口规则与接口详细信息自行开发。
# 3. 业务接入
# 3.1. 业务序列图
# 3.2. 关键步骤说明
# 步骤1:接收商户平台处置记录通知
1、在调用接口前,开发者需要根据商户平台处置通知 (opens new window),完成商户违规通知回调地址的创建,接收商户平台处置回调通知。
2、在收到商户平台处置回调通知后,开发者需要关注回调通知
字段中event_type
(通知类型)为VIOLATION.PUNISH
且回调通知解密后risk_type
(风险类型)为ALL_MERCHANTS_HAVE_CONFIRMED_THE_WILLINGNESS_TO_OPEN_AN_ACCOUNT
的消息,建议将其中sub_mchid
(处置商户号)、record_id
(通知唯一标识)、punish_plan
(处罚方案)和risk_type
(风险类型)等信息予以记录以便后续使用和问题排查。
回调通知内容示例如下:
1{2 "sub_mchid": "1900009231",3 "company_name":"财付通支付科技有限公司",4 "record_id":"200201820200101080076610000",5 "punish_plan":"关闭支付权限,延迟结算",6 "punish_time":"2015-05-20T13:29:35+08:00",7 "punish_description":"",8 "risk_type":"ALL_MERCHANTS_HAVE_CONFIRMED_THE_WILLINGNESS_TO_OPEN_AN_ACCOUNT",9 "risk_description":"无交易商户未确认开户意愿"10}
# 步骤2:发起不活跃商户身份核实
1、同一商户同一时间只会存在一笔核实单,如果针对该商户重复发起核实,接口会返回成功以及流程中的核实单单号。
2、发起不活跃商户身份核实接口采用异步处理模式,即在接收到服务商请求后,优先受理请求再异步处理,最终的核实结果可以通过查询接口获得。
# 步骤3:查询不活跃商户身份核实结果
1、不活跃商户身份核实结束后,目前不会有回调通知,需要开发者对已发起单据进行轮询。
2、当查询到核实单状态为SUCCESS或FAIL时,即可停止轮询,核实单状态不再改变。
3、核实单除了记录单号和单据状态外,还会记录失败原因,当核实单状态为FAIL时返回,可以协助判断问题。
注意
一般三天内单据即会流转为终态,建议轮询时间3天,轮询频率每小时1次。