curl

更新时间:2025.09.24

一、概述

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

二、基础语法说明

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":"你的回调地址"}'

点击查看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

验签步骤的具体介绍可参考文档:如何使用微信支付公钥验签