POST · /api/v1/wallet/callback/replay*
重发回调
手工把指定回调任务重置为待推送状态,由平台调度 Job(约 30 秒内)再次发起推送。提供三个入口:按充值 id、按提现业务单号、按回调任务 id。
POST 但参数在 Query 上,无 body
这三个端点都是 POST 方法,但参数通过 query string 传递,不需要请求 body。 签名时 body 用空串,对应固定 SHA256 值:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855。 底层动作
重发操作将对应回调任务重置为WAITING 状态,同时将 retryTimes=0、nextRetryTime=now。 CallbackDispatchJob 下一轮(约 30 秒)会自动拉起推送。可通过 查询回调任务 接口确认状态已变化。 端点 1:按充值记录 id 重发
/api/v1/wallet/callback/replay-recharge HMAC Query 参数:rechargeId(integer,必填)— 充值记录 id,来自充值回调 payload 的 id 字段。
Header 参数
X-Api-Keystring required | 应用 apiKey。沙箱前缀 pk_test_,正式 pk_live_。 例: pk_test_4f9d8ab1c0e74... |
X-Timestampinteger (UNIX 毫秒) required | 请求发起时刻的 UNIX 毫秒时间戳(13 位整数)。与服务端时差不能超过 ±300000ms(5 分钟)。 例: 1746450000000 |
X-Noncestring required | 本次请求的随机串,建议 UUID v4 或 16 字节 hex。同一 (apiKey, nonce) 在 10 分钟窗口内不可重复。 例: 8e3a1c2f7b6d4a90 |
X-Signaturestring 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:按提现业务单号重发
/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 重发
/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"统一响应(三个端点相同)
200OK
{
"code": 0,
"data": true,
"msg": ""
}下一步
- 查询回调任务 — 重发后可查看状态是否已变为 WAITING / SUCCESS
- 查询 attempt 历史 — 查看新一次推送的结果
- Payload 与验签 — 检查商户 endpoint 验签逻辑