POST · /api/v1/wallet/callback/replay*

重发回调

手工把指定回调任务重置为待推送状态,由平台调度 Job(约 30 秒内)再次发起推送。提供三个入口:按充值 id、按提现业务单号、按回调任务 id。

POST 但参数在 Query 上,无 body

这三个端点都是 POST 方法,但参数通过 query string 传递,不需要请求 body。 签名时 body 用空串,对应固定 SHA256 值: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

底层动作

重发操作将对应回调任务重置为 WAITING 状态,同时将 retryTimes=0nextRetryTime=now。 CallbackDispatchJob 下一轮(约 30 秒)会自动拉起推送。可通过 查询回调任务 接口确认状态已变化。

端点 1:按充值记录 id 重发

POST/api/v1/wallet/callback/replay-recharge HMAC

Query 参数:rechargeId(integer,必填)— 充值记录 id,来自充值回调 payload 的 id 字段。

Header 参数

X-Api-Key
string required
应用 apiKey。沙箱前缀 pk_test_,正式 pk_live_
例: pk_test_4f9d8ab1c0e74...
X-Timestamp
integer (UNIX 毫秒) required
请求发起时刻的 UNIX 毫秒时间戳(13 位整数)。与服务端时差不能超过 ±300000ms(5 分钟)。
例: 1746450000000
X-Nonce
string required
本次请求的随机串,建议 UUID v4 或 16 字节 hex。同一 (apiKey, nonce) 在 10 分钟窗口内不可重复。
例: 8e3a1c2f7b6d4a90
X-Signature
string required
HMAC-SHA256 签名(小写 hex,64 字符)。算法:HMAC(secret, METHOD + "\n" + PATH + "\n" + ts + "\n" + nonce + "\n" + SHA256(body))。详见 鉴权章节
例: 6e4a8c1f...(64 字符)

请求示例

# 按充值记录 id 重发;POST 但参数在 query 上,无 body → body='' 固定签名值
API_KEY=pk_live_xxx
SECRET=sk_live_xxx
METHOD=POST
REQ_PATH=/api/v1/wallet/callback/replay-recharge
BODY=''
TS=$(( $(date +%s) * 1000 ))
NONCE=$(uuidgen | tr -d '-' | tr '[:upper:]' '[:lower:]')
# 空 body SHA256 固定值
BODY_SHA=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
SIG=$(printf "%s\n%s\n%s\n%s\n%s" "$METHOD" "$REQ_PATH" "$TS" "$NONCE" "$BODY_SHA" \
  | openssl dgst -sha256 -hmac "$SECRET" -hex | awk '{print $2}')

curl -X POST "https://api.pqpa.com$REQ_PATH?rechargeId=9001" \
  -H "X-Api-Key:   $API_KEY" \
  -H "X-Timestamp: $TS" \
  -H "X-Nonce:     $NONCE" \
  -H "X-Signature: $SIG"

端点 2:按提现业务单号重发

POST/api/v1/wallet/callback/replay-withdraw HMAC

Query 参数:appOrderNo(string,必填)— 商户侧提现业务单号,与发起提现时传入的一致。

请求示例

# 按提现业务单号重发
API_KEY=pk_live_xxx
SECRET=sk_live_xxx
METHOD=POST
REQ_PATH=/api/v1/wallet/callback/replay-withdraw
BODY=''
TS=$(( $(date +%s) * 1000 ))
NONCE=$(uuidgen | tr -d '-' | tr '[:upper:]' '[:lower:]')
BODY_SHA=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
SIG=$(printf "%s\n%s\n%s\n%s\n%s" "$METHOD" "$REQ_PATH" "$TS" "$NONCE" "$BODY_SHA" \
  | openssl dgst -sha256 -hmac "$SECRET" -hex | awk '{print $2}')

curl -X POST "https://api.pqpa.com$REQ_PATH?appOrderNo=ORDER_2026050501" \
  -H "X-Api-Key:   $API_KEY" \
  -H "X-Timestamp: $TS" \
  -H "X-Nonce:     $NONCE" \
  -H "X-Signature: $SIG"

端点 3:按回调任务 id 重发

POST/api/v1/wallet/callback/replay HMAC

Query 参数:callbackTaskId(integer,必填)— 回调任务 id,从 GET /api/v1/wallet/callback/tasks 获取。适用于所有 bizType,且可精确指定某条任务。

请求示例

# 按回调任务 id 重发(最灵活)
API_KEY=pk_live_xxx
SECRET=sk_live_xxx
METHOD=POST
REQ_PATH=/api/v1/wallet/callback/replay
BODY=''
TS=$(( $(date +%s) * 1000 ))
NONCE=$(uuidgen | tr -d '-' | tr '[:upper:]' '[:lower:]')
BODY_SHA=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
SIG=$(printf "%s\n%s\n%s\n%s\n%s" "$METHOD" "$REQ_PATH" "$TS" "$NONCE" "$BODY_SHA" \
  | openssl dgst -sha256 -hmac "$SECRET" -hex | awk '{print $2}')

curl -X POST "https://api.pqpa.com$REQ_PATH?callbackTaskId=5001" \
  -H "X-Api-Key:   $API_KEY" \
  -H "X-Timestamp: $TS" \
  -H "X-Nonce:     $NONCE" \
  -H "X-Signature: $SIG"

统一响应(三个端点相同)

Response
200OK
{
  "code": 0,
  "data": true,
  "msg": ""
}

下一步