前两天有一开发者,一直在捣鼓签名的事儿,我建议其使用一下CLI工具,发现还是得再做个“教程”引导贴,遂就拿沙箱环境来练习吧。

引言

接续的是上一贴免充值产品测试验收用例的教学帖,本篇以纯shell结合CLI模式运转,windows用户建议使用WSL/WSL2来练习。

环境准备

  1. 空建一个文件夹,例如: ~/wxpay_sandbox (熟npm用户可忽略)
  2. 增加两字节的内容是{}package.json文件 (熟npm用户可忽略)
  3. 安装依赖软件包 npm install wechatpay-axios-plugin yargs --save
  4. 简单shell套个壳,例如 ~/wxpay_sandbox/practice.sh
  5. 更新文件为可执行 chmod +x ~/wxpay_sandbox/practice.sh
1
2
3
4
5
6
7
8
#!/bin/bash

# filename practice.sh

appid="你的appid"
mchid="你的商户号"

./node_modules/.bin/wxpay -c.appid $appid -c.mchid $mchid -c.serial any -c.privateKey any -c.certs.any $@

获取沙箱密钥

切换工作目录 cd ~/wxpay_sandbox/,然后执行如下命令:

1
./practice.sh v2.sandboxnew.pay.getsignkey -b -b -c.secret 你商户的密钥 -d.mch_id 你的商户号 -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS

记录一下屏幕打印的 沙箱密钥 sandbox_signkey 值,后续练习均需要这个值。

1001 付款码(刷卡)支付

订单金额 5.01 元,其中 0.01 元使用免充值券,用户实际支付 5.00 元。验证商户具备正确解析及识别免充值代金券字段的能力。

1001.1 请求支付

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
./practice.sh v2.sandboxnew.pay.micropay \
  -c.secret 沙箱密钥 \
  -d.appid 你的appid \
  -d.mch_id 你的商户号 \
  -d.out_trade_no sandbox20210430200000_501 \
  -d.body dummybot \
  -d.total_fee 501 \
  -d.spbill_create_ip 127.0.0.1 \
  -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS \
  -d.auth_code 120061098828009406

注意查看屏幕打印的 coupon_fee 代金券金额, settlement_total_fee 应结订单金额, total_fee 订单金额

1001.2 获取支付结果

1
2
3
4
5
6
./practice.sh v2.sandboxnew.pay.orderquery \
  -c.secret 沙箱密钥 \
  -d.appid 你的appid \
  -d.mch_id 你的商户号 \
  -d.out_trade_no sandbox20210430200000_501 \
  -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS

注意查看屏幕打印,这里不累述了

1002 付款码(刷卡)支付退款

订单金额 5.02 元,其中 0.01 元使用免充值代金劵,实际支付 5.01 元,退款查询升级。

1002.1 请求支付

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
./practice.sh v2.sandboxnew.pay.micropay \
  -c.secret 沙箱密钥 \
  -d.appid 你的appid \
  -d.mch_id 你的商户号 \
  -d.body dummybot \
  -d.total_fee 502 \
  -d.spbill_create_ip 127.0.0.1 \
  -d.out_trade_no sandbox20210430200000_502 \
  -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS \
  -d.auth_code 120061098828009406

1002.2 获取支付结果

1
2
3
4
5
6
./practice.sh v2.sandboxnew.pay.orderquery \
  -c.secret 沙箱密钥 \
  -d.appid 你的appid \
  -d.mch_id 你的商户号 \
  -d.out_trade_no sandbox20210430200000_502 \
  -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS

1002.3 请求退款

1
2
3
4
5
6
7
8
9
./practice.sh v2.sandboxnew.pay.refund \
  -c.secret 沙箱密钥 \
  -d.appid 你的appid \
  -d.mch_id 你的商户号 \
  -d.out_trade_no sandbox20210430200000_502 \
  -d.out_refund_no RD_sandbox20210430200000_502 \
  -d.total_fee 502 \
  -d.refund_fee 501 \
  -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS

1002.4 获取退款结果

1
2
3
4
5
6
./practice.sh v2.sandboxnew.pay.refundquery \
  -c.secret 沙箱密钥 \
  -d.appid 你的appid \
  -d.mch_id 你的商户号 \
  -d.out_trade_no sandbox20210430200000_502 \
  -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS

1003 JSAPI/APP/Native支付

订单金额 5.51 元,其中 0.01 元使用免充值券,实际支付 5.50 元。 验证正常支付流程,商户使用免充值代金券支付。

1003.1 统一下单

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
./practice.sh v2.sandboxnew.pay.unifiedorder \
  -c.secret 沙箱密钥 \
  -d.appid 你的appid \
  -d.mch_id 你的商户号 \
  -d.out_trade_no sandbox20210430200000_551 \
  -d.body dummybot \
  -d.total_fee 551 \
  -d.notify_url https://www.weixin.qq.com/wxpay/pay.php \
  -d.spbill_create_ip 127.0.0.1 \
  -d.trade_type JSAPI \
  -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS

1003.2 获取支付结果

1
2
3
4
5
6
./practice.sh v2.sandboxnew.pay.orderquery \
  -c.secret 沙箱密钥 \
  -d.appid 你的appid \
  -d.mch_id 你的商户号 \
  -d.out_trade_no sandbox20210430200000_551 \
  -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS

1004 JSAPI/APP/Native支付退款

订单金额 5.52 元,其中 0.01 元使用免充值券,实际支付 5.51 元。

1004.1 统一下单

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
./practice.sh v2.sandboxnew.pay.unifiedorder \
  -c.secret 沙箱密钥 \
  -d.appid 你的appid \
  -d.mch_id 你的商户号 \
  -d.out_trade_no sandbox20210430200000_552 \
  -d.body dummybot \
  -d.total_fee 552 \
  -d.notify_url https://www.weixin.qq.com/wxpay/pay.php \
  -d.spbill_create_ip 127.0.0.1 \
  -d.trade_type JSAPI \
  -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS

1004.2 获取支付结果

1
2
3
4
5
6
./practice.sh v2.sandboxnew.pay.orderquery \
  -c.secret 沙箱密钥 \
  -d.appid 你的appid \
  -d.mch_id 你的商户号 \
  -d.out_trade_no sandbox20210430200000_552 \
  -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS

1004.3 请求退款

1
2
3
4
5
6
7
8
9
./practice.sh v2.sandboxnew.pay.refund \
  -c.secret 沙箱密钥 \
  -d.appid 你的appid \
  -d.mch_id 你的商户号 \
  -d.out_trade_no sandbox20210430200000_552 \
  -d.out_refund_no RD_sandbox20210430200000_552 \
  -d.total_fee 552 \
  -d.refund_fee 551 \
  -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS

1004.4 获取退款结果

1
2
3
4
5
6
./practice.sh v2.sandboxnew.pay.refundquery \
  -c.secret 沙箱密钥 \
  -d.appid 你的appid \
  -d.mch_id 你的商户号 \
  -d.out_trade_no sandbox20210430200000_552 \
  -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS

1005 交易对账单下载

1
2
3
4
5
6
7
8
./practice.sh v2.sandboxnew.pay.downloadbill \
  -b -b -b \
  -c.secret 沙箱密钥 \
  -d.appid 你的appid \
  -d.mch_id 你的商户号 \
  -d.bill_type ALL \
  -d.bill_date 2021-04-30 \
  -d.nonce_str 5K8264ILTKCH16CQ2502SI8ZNMTM67VS

最后

就等你来练习咯~