verifySign
回调签名验证
使用示例
ts
import { WechatService } from 'nest-wxpay'
@Injectable()
export class Controller {
constructor(private readonly wechatService: WechatService) {}
@Post('callback')
async callback(
@Body() body: PayCallbackResponse,
@Headers() headers: Record<string, string>
): Promise<> {
const timestamp = headers['Wechatpay-Timestamp']
const nonce = headers['Wechatpay-Nonce']
const signature = headers['Wechatpay-Signature']
const result = await this.wechatService.verifySign({
nonce,
signature,
timestamp,
requestBody: JSON.stringify(body)
})
console.log(`验证结果 => ${result}`)
}
}
参数解析
PayCallbackResource
字段名 | 类型 | 是否必填 | 用途 |
---|---|---|---|
algorithm | string | 是 | 对开启结果数据进行加密的加密算法,目前只支持AEAD_AES_256_GCM |
ciphertext | string | 是 | Base64编码后的开启/停用结果数据密文 |
associated_data | string | 是 | 附加数据 |
original_type | string | 是 | 原始回调类型,为transaction |
nonce | string | 是 | 加密使用的随机串 |
PayCallbackResponse
字段名 | 类型 | 是否必填 | 用途 |
---|---|---|---|
id | string | 是 | 通知的唯一ID |
create_time | string | 是 | 通知创建的时间,遵循rfc3339标准格式 |
event_type | string | 是 | 通知的类型,支付成功通知的类型为TRANSACTION.SUCCESS |
resource_type | string | 是 | 通知的资源数据类型,支付成功通知为encrypt-resource |
resource | PayCallbackResource | 是 | 通知资源数据 |
响应参数
boolean