一、概述
本文档提供基于 curl
命令行工具调用“设置商品券事件通知地址”接口的示例。
适用对象:开发人员、测试人员、运维人员等需要通过命令行快速调试或验证接口的场景。
二、基础语法说明

1curl [选项] <目标URL>
|
-X
| 指定 HTTP 方法(如 GET/POST/PUT/DELETE) | -X POST
|
-H
| 添加请求头(可多次使用) | -H "Content-Type: application/json"
|
-d
| 发送请求体数据(默认为 POST 的表单格式,需配合 -X 指定方法) | -d '{"key":"value"}'
|
三、接口调用示例
1、前置准备工作
准备开发参数
商户调用接口前需要需要先准备开发必要参数:brand_id
(品牌ID)、品牌API证书以及证书序列号、微信支付公钥以及公钥ID等信息,具体可参考:开发必要参数说明
2.接口调用示例
以下示例中使用的时间戳、随机字符串、开发必要参数、body参数需保持一致,若同一参数信息使用不同的值将导致接口调用失败,
2.1、构造请求签名

1echo -n -e \
2 'POST\n/brand/marketing/product-coupon/notify-configs\n时间戳\n随机字符串\n{"notify_url":"你的回调地址"}\n' \
3 | openssl dgst -sha256 -sign 品牌API证书文件.pem \
4 | openssl base64 -A
通过上述示例可得出的"签名值",用于后续设置HTTP头,生成签名值的具体介绍请参考:如何构造请求签名
2.2、设置HTTP头

1Authorization: WECHATPAY-BRAND-SHA256-RSA2048 brand_id="你的品牌ID",nonce_str="随机字符串",signature="签名值",timestamp="时间戳",serial_no="品牌API证书对应的证书序列号"
2.3、CURL发送请求

1curl -X POST \
2 https://api.mch.weixin.qq.com/brand/marketing/product-coupon/notify-configs \
3 -H 'Authorization: WECHATPAY-BRAND-SHA256-RSA2048 brand_id="你的品牌ID",nonce_str="随机字符串",signature="签名值",timestamp="时间戳",serial_no="品牌API证书对应的证书序列号"' \
4 -H 'Accept: application/json' \
5 -H 'Content-Type: application/json' \
6 -H 'Wechatpay-Serial: 你的公钥ID' \
7 -d '{"notify_url":"你的回调地址"}'

1{"notify_url" : "你的回调地址","update_time" : "更新时间"}
若请求失败,请求主体将返回报错,将返回以下格式的信息,请根据具体的错误描述进行排查。

1{"code":"错误码","message":"错误描述"}
2.4、验证签名
为了信息安全,请求成功后还需使用公钥对返回信息进行验签,确认返回信息来自微信支付。

1Content-Type: application/json; charset=utf-8
2Content-Length: 52
3Connection: keep-alive
4Keep-Alive: timeout=8
5Cache-Control: no-cache, must-revalidate
6X-Content-Type-Options: nosniff
7Request-ID: 请求的唯一标识
8Content-Language: zh-CN
9Wechatpay-Nonce: 应答随机串
10Wechatpay-Signature: 应答签名值
11Wechatpay-Timestamp: 应答时间戳
12Wechatpay-Serial: 你的公钥ID
13Wechatpay-Signature-Type: WECHATPAY-BRAND-SHA256-RSA2048
使用 base64 解码应答签名值,并保存为文件 signature.txt (可自定义文件名,此处为示例)。

1openssl base64 -d <<< \ '应答签名值' > signature.txt

1openssl dgst -sha256 -verify 你的微信支付公钥.pem -signature signature.txt << EOF
2应答时间戳
3应答随机串
4{"notify_url" : "你的回调地址","update_time" : "更新时间"}
5EOF
得到的结果为如下verified ok 则表示验签通过

1Verified OK