init
This commit is contained in:
Executable
+99
@@ -0,0 +1,99 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
BASE_URL="http://127.0.0.1:3000"
|
||||
CONFIG_FILE="/Users/yml/codes/order-site-backend/config/local.cjs"
|
||||
APP_SECRET=$(node -p "require('$CONFIG_FILE').platforms.agiso.appSecret")
|
||||
|
||||
ORDER_ID="${1:-SIM-ORDER-20260408-0001}"
|
||||
SKU_ID="32768"
|
||||
SKU_NAME="海底捞套餐"
|
||||
|
||||
sign_agiso() {
|
||||
local raw_json="$1"
|
||||
local ts="$2"
|
||||
|
||||
node -e '
|
||||
const crypto = require("crypto")
|
||||
const appSecret = process.argv[1]
|
||||
const rawJson = process.argv[2]
|
||||
const timestamp = process.argv[3]
|
||||
const sign = crypto
|
||||
.createHash("md5")
|
||||
.update(`${appSecret}json${rawJson}timestamp${timestamp}${appSecret}`, "utf8")
|
||||
.digest("hex")
|
||||
.toLowerCase()
|
||||
process.stdout.write(sign)
|
||||
' "$APP_SECRET" "$raw_json" "$ts"
|
||||
}
|
||||
|
||||
push_agiso_event() {
|
||||
local aopic="$1"
|
||||
local raw_json="$2"
|
||||
local ts
|
||||
ts=$(date +%s)
|
||||
local sign
|
||||
sign=$(sign_agiso "$raw_json" "$ts")
|
||||
|
||||
echo
|
||||
echo "========== PUSH aopic=$aopic =========="
|
||||
echo "ORDER_ID=$ORDER_ID"
|
||||
echo
|
||||
|
||||
curl -sS -X POST "${BASE_URL}/api/v1/webhooks/agiso/trade?aopic=${aopic}×tamp=${ts}&sign=${sign}" \
|
||||
-H "Content-Type: application/x-www-form-urlencoded" \
|
||||
--data-urlencode "json=${raw_json}"
|
||||
|
||||
echo
|
||||
echo
|
||||
}
|
||||
|
||||
create_payload() {
|
||||
cat <<EOF
|
||||
{"biz_order_id":"${ORDER_ID}","buyer_id":"buyer-local-001","buyer_name":"本地测试用户","receiver_contact":"13800000000","total_fee":"1","currency":"CNY","items":[{"goods_id":"${SKU_ID}","goods_name":"${SKU_NAME}","quantity":1}]}
|
||||
EOF
|
||||
}
|
||||
|
||||
paid_payload() {
|
||||
cat <<EOF
|
||||
{"biz_order_id":"${ORDER_ID}","buyer_id":"buyer-local-001","buyer_name":"本地测试用户","receiver_contact":"13800000000","total_fee":"1","currency":"CNY","order_status":"3","items":[{"goods_id":"${SKU_ID}","goods_name":"${SKU_NAME}","quantity":1}]}
|
||||
EOF
|
||||
}
|
||||
|
||||
confirm_payload() {
|
||||
cat <<EOF
|
||||
{"biz_order_id":"${ORDER_ID}","buyer_id":"buyer-local-001","buyer_name":"本地测试用户","receiver_contact":"13800000000","total_fee":"1","currency":"CNY","order_status":"4","items":[{"goods_id":"${SKU_ID}","goods_name":"${SKU_NAME}","quantity":1}]}
|
||||
EOF
|
||||
}
|
||||
|
||||
push_create() {
|
||||
push_agiso_event "32" "$(create_payload)"
|
||||
}
|
||||
|
||||
push_paid() {
|
||||
push_agiso_event "1" "$(paid_payload)"
|
||||
}
|
||||
|
||||
push_confirm() {
|
||||
push_agiso_event "256" "$(confirm_payload)"
|
||||
}
|
||||
|
||||
case "${2:-all}" in
|
||||
create)
|
||||
push_create
|
||||
;;
|
||||
paid)
|
||||
push_paid
|
||||
;;
|
||||
confirm)
|
||||
push_confirm
|
||||
;;
|
||||
all)
|
||||
push_create
|
||||
push_paid
|
||||
;;
|
||||
*)
|
||||
echo "用法: $0 [ORDER_ID] [create|paid|confirm|all]"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user