| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #!/bin/sh
- # open_server_hw.sh
- # Call the gmweb /v1/pay/openServer endpoint for overseas (HW) open-server notification.
- # Usage:
- # ./open_server_hw.sh sid name time gameid signkey
- # ./open_server_hw.sh <base_url> sid name time gameid signkey
- # Examples:
- # ./open_server_hw.sh 1 "Server One" "2026-02-01 10:00:00" mygamekey mysignkey
- # ./open_server_hw.sh http://127.0.0.1:8080/v1/pay/openServer 1 "Server One" "2026-02-01 10:00:00" mygamekey mysignkey
- # Notes:
- # - If you provide 5 args (or 6 with base URL), the script will work as before.
- # - If `time` is passed without quotes (split into multiple tokens like 2025-11-20 12:00:00),
- # the script will rejoin the middle tokens into the time string automatically.
- # - Values that include spaces are still best passed quoted; this just provides convenience for the
- # common date-time case where users forget to quote the string.
- # - The script uses curl --get --data-urlencode so values are URL-encoded safely.
- usage() {
- echo "Usage: $0 sid name time gameid signkey"
- echo " or: $0 <base_url> sid name time gameid signkey"
- exit 1
- }
- DEFAULT_URL="http://127.0.0.1:8086/v1/pay/openServer"
- if [ $# -lt 5 ]; then
- usage
- fi
- # detect optional base URL (starts with http:// or https://)
- case "$1" in
- http://*|https://*)
- BASE_URL="$1"
- shift
- ;;
- *)
- BASE_URL="$DEFAULT_URL"
- ;;
- esac
- # Now we expect at least 5 positional parts: sid name time... gameid signkey
- if [ $# -lt 5 ]; then
- usage
- fi
- sid="$1"
- name="$2"
- # We treat the last two tokens as gameid and signkey, and everything between name and gameid as the time
- # Count remaining args
- N=$#
- # get signkey (last arg)
- signkey=$(eval "echo \${$N}")
- # get gameid (arg N-1)
- idx=`expr $N - 1`
- gameid=$(eval "echo \${$idx}")
- # build time from args 3 .. N-2
- time=""
- start=3
- end=`expr $N - 2`
- idx=$start
- while [ $idx -le $end ]; do
- part=$(eval "echo \${$idx}")
- if [ -z "$time" ]; then
- time="$part"
- else
- time="$time $part"
- fi
- idx=`expr $idx + 1`
- done
- if ! command -v curl >/dev/null 2>&1; then
- echo "curl not found. Please install curl."
- exit 1
- fi
- echo "Calling ${BASE_URL} with:" \
- "sid=${sid}" "name=${name}" "time=${time}" "gameid=${gameid}"
- # Use curl --get --data-urlencode for safe encoding of parameters (handles spaces and special chars)
- curl -S -G "$BASE_URL" \
- --data-urlencode "sid=${sid}" \
- --data-urlencode "name=${name}" \
- --data-urlencode "time=${time}" \
- --data-urlencode "gameid=${gameid}" \
- --data-urlencode "signkey=${signkey}"
- echo
- echo "-----done-----"
|