总述-APIv3如何签名和验签

更新时间:2024.11.21

概述

在微信支付APIv3的所有请求应答场景、接口回调场景、调起支付场景,开发者都需要进行签名验签。

1. 什么时候需要签名?如何签名?

以下2种场景需要构造签名

1.1 请求微信支付接口

商户调用微信支付接口的时候需要用到商户API证书(什么是商户API证书?如何获取商户API证书?构造请求签名,且根据请求参数类型的不同,签名方式有所差异,请参考一下的操作指引说明

1)请求参数里带Path参数(路径参数),如何计算签名

(2)请求参数里带Body参数(包体参数),如何计算签名

(3)请求参数里有Query(查询参数),如何计算签名

(4)图片上传接口,如何计算签名

1.2 调起支付

商户在前端调起支付时,需要用到商户API证书(什么是商户API证书?如何获取商户API证书?构造调起支付签名,请根据需求参考对应的文档

(1)JSAPI调起支付签名

(2)APP调起支付签名

(3)小程序调起支付签名

2. 什么时候需要验签?如何验签?

以下2种场景商户需要验签,验证请求是来自微信支付

微信支付应答商户的请求时,商户需要验签(验证请求是来自微信支付)

接收微信支付的回调时,商户需要验签(验证请求是来自微信支付)

              

            

2.1 接收微信支付应答

微信支付应答商户的请求时,商户需要验签。

(1)【推荐】如果你使用的是微信支付公钥,参考微信支付公钥如何验签

(2)如果你使用的是平台证书模式,参考如何使用平台证书验签

2.2 接收微信支付回调请求

接收微信支付的回调时,商户需要验签

(1)微信支付会使用APIv3密钥加密回调信息,商户需要使用APIv3密钥解密回调信息,参考如何解密微信支付回调报文

(2)【推荐】如果你使用的是微信支付公钥,参考如何使用微信支付公钥验签

(3)如果你使用的是平台证书模式,参考如何使用平台证书验签名