shell 的curl请求参数中通过单引号传参,值解析后需要双引号

验证微信v3签名,我写了脚本,执行的时候需要的传参,需要如下格式: curl -s https://api.mch.weixin.qq.com/v3/certificates -H 'Authorization: WECHATPAY2-SHA256-RSA2048 mchid="148905...

验证微信v3签名,我写了脚本,执行的时候需要的传参,需要如下格式:


curl -s https://api.mch.weixin.qq.com/v3/certificates -H 'Authorization: WECHATPAY2-SHA256-RSA2048 mchid="1489053472",nonce_str="26D2B0D2C69E562B8F61791B1C98FD7B",signature="XPa530upve9vj6SZfkyNtcmqZ7vLLroT72grCayH/KGCpHxA52z/MVJE4grqHyqF8jRKrEo3JvjUxGudM7sgQvQw9TW6cLHD18SnESz29PsDdinh38xT3Y2wm56RivPNT65eqLVT2AQNFCRiy2zPniTCcKnX5kqPBrCThf7rIObswWwTVmSx0l/2/oDKGy9h4hwbjayEgUx+n9QG5GEjkWSbFDoIGXXoIiM1CGQ1mBFPGbE14M+KyLIu+zgCp3hKKs//fEEXnEFd5shXWroxrehzLoj2/STPIslFntlZ7dO/vxfYjZ/y34uFDfzAtSmoG62xqLLiVQqT9XoJMw1T4g==",timestamp="1658927382",serial_no="3FB55AB0DED24EB3F5D9492F2962A0186F41F056"'



key-value中  value值需要保留”双引号“       比如:mchid="1489053472",nonce_str="26D2B0D2C69E562B8F61791B1C98FD7B" 格式,而shell中 value值是变量,这就非常麻烦,现在是一个值解决方法:


#!/bin/bash

#通过获取证书信息判断签名是否正常

mch_id=1489053472

sign_serial=3FB55AB0DED24EB3F5D9492F2962A0186F41F056

encrypt_method=WECHATPAY2-SHA256-RSA2048

timestamp=$(date +%s)

nonce_str=$(hexdump -n 16 -e '4/4 "%08X" 1 "\n"' /dev/urandom)

url='https://api.mch.weixin.qq.com/v3/certificates'

##生成签名

signgure=`echo -n -e "GET\n/v3/certificates\n$timestamp\n$nonce_str\n\n" | openssl dgst -sha256 -sign apiclient_key.pem |openssl base64 -A`

## 拼接请求,头部传参

curl -s $url -H 'Authorization: '$encrypt_method' mchid=''"'$mch_id'"'',nonce_str=''"'$nonce_str'"'',signature=''"'$signgure'"'',timestamp=''"'$timestamp'"'',serial_no=''"'$sign_serial'"''' |jq

  • 发表于 2022-07-27 21:12
  • 阅读 ( 31 )

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
shitian
shitian

662 篇文章

作家榜 »

  1. shitian 662 文章
  2. 石天 437 文章
  3. 每天惠23 33 文章
  4. 小A 29 文章