开发指引

更新时间:2024.12.02

1. 接口规则

为了在保证支付安全的前提下,带给商户简单、一致且易用的开发体验,我们推出了全新的微信支付APIv3接口。该版本API的具体规则请参考“APIv3接口规则”。

2. 开发环境搭建

为了帮助开发者更好的调用接口,我们提供微信支付APIv3官方SDK,请根据自身开发语言,选择对应的SDK库集成到项目。

目前微信支付提供JAVA、PHP、GO三种语言版本的SDK,封装了签名生成、签名验证、敏感信息加/解密、媒体文件上传等基础接口功能。

SDK

说明

wechatpay-java

Java 服务端 SDK

wechatpay-php

PHP 服务端 SDK

wechatpay-go

GO 服务端 SDK

如下通用基础功能接口,已经在SDK中完成封装,可替换相关参数后快速测试。

  1. 签名生成

  2. 签名验证

  3. 敏感信息加解密

  4. merchantPrivateKey(私钥)

  5. wechatpayCertificates(平台证书)

  6. APIV3Key(V3 key)

若使用的编程语言无对应的SDK,则需要按照接口规则与接口详细信息自行开发。

3. 业务接入

3.1. 业务序列图

3.2. 关键步骤说明

步骤1:接收商户平台处置记录通知

1、在调用接口前,开发者需要根据商户平台处置通知,完成商户违规通知回调地址的创建,接收商户平台处置回调通知。

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次。