public final class WXPayReportManager
extends java.lang.Object
IWXPayReporter.
Every public method is null-safe and never throws — reporting must never break payment.IWXPayReporter。
所有公开方法均 null 安全且不抛异常——上报绝不能影响支付。| Modifier and Type | Method and Description |
|---|---|
static void |
clear()
兜底清理(防止异常路径遗留 ThreadLocal)。正常出口已在 flush 中清理。
|
static java.lang.String |
genTraceId()
生成 trace_id:统一小写 UUID v4(URL 安全,三端一致)。
|
static boolean |
isEnabled() |
static void |
onBeforePayLaunch(android.content.Context context)
实际跨进程投递前调用:先把 trace 基础上下文提交给单线程 Store,
再异步 flush 已入队的 pay_launch/start 与前置 steps。入口不阻塞且失败静默。
|
static void |
onLaunchDeliverFail(android.content.Context context,
java.lang.String exitPoint,
java.lang.String channel,
java.lang.String reason,
java.lang.String reasonCategory,
org.json.JSONObject segExt)
实际 send 返回失败:上报失败终态并立即 flush,同时异步清除本次预拉起 Store 记录。
|
static void |
onLaunchFail(java.lang.String exitPoint,
java.lang.String reason,
java.lang.String reasonCategory,
org.json.JSONObject segExt)
拉起链路失败出口:发一条
pay_launch 失败终态行(outcome=fail,step=exitPoint),
并把本段已缓存的 step 行一并 flush。stage 固定 pay_launch,不再需要 stage/event 入参。 |
static void |
onLaunchSuccess(android.content.Context context,
java.lang.String exitPoint,
java.lang.String channel)
发起段投递成功出口:立即上报并 flush 拉起成功终态。
基础 Store 记录继续保留,供支付回包续用 trace_id 并计算 e2e 耗时。
|
static void |
onPayResp(android.content.Context context,
java.lang.String appId,
java.lang.String command,
java.lang.String prepayId,
int errCode,
java.lang.String errStr)
handleIntent 命中支付回包分支(P6)时调用,立即单发一条
pay_resp_trace(终态结果,低频、避免 App 退出丢失)。回包段用独立 trace_id,
跨段靠 prepay_id 与发起段对账。非支付回包不调用此方法。 |
static void |
onSendReqEnter(android.content.Context context,
java.lang.String appId,
BaseReq req)
sendReq 进入时调用。仅支付/联合支付会开启轨迹:
生成 trace_id,并立即单发 pay_start/start。非支付请求直接忽略。 |
static void |
onStep(java.lang.String step,
java.lang.String result,
org.json.JSONObject stepExt)
记录一个 step:v2 下每步独立成一行
pay_launch 事件(buffer,不立即单发),
随拉起终态在 onLaunchSuccess(android.content.Context, java.lang.String, java.lang.String)/onLaunchFail(java.lang.String, java.lang.String, java.lang.String, org.json.JSONObject) 时统一 flush。废弃 ext.trace 折叠。 |
static void |
onStepPass(java.lang.String step)
记录一个通过的 step(result=pass)。
|
static void |
setEnabled(boolean enabled)
关闭/开启支付上报(宿主可控)。
|
static void |
setReporter(IWXPayReporter reporter)
注入自定义传输实现;传
null 恢复默认 HTTP 实现。 |
public static void setEnabled(boolean enabled)
public static boolean isEnabled()
public static void setReporter(IWXPayReporter reporter)
null 恢复默认 HTTP 实现。public static java.lang.String genTraceId()
public static void onSendReqEnter(android.content.Context context,
java.lang.String appId,
BaseReq req)
sendReq 进入时调用。仅支付/联合支付会开启轨迹:
生成 trace_id,并立即单发 pay_start/start。非支付请求直接忽略。public static void onStepPass(java.lang.String step)
public static void onStep(java.lang.String step,
java.lang.String result,
org.json.JSONObject stepExt)
pay_launch 事件(buffer,不立即单发),
随拉起终态在 onLaunchSuccess(android.content.Context, java.lang.String, java.lang.String)/onLaunchFail(java.lang.String, java.lang.String, java.lang.String, org.json.JSONObject) 时统一 flush。废弃 ext.trace 折叠。public static void onBeforePayLaunch(android.content.Context context)
public static void onLaunchSuccess(android.content.Context context,
java.lang.String exitPoint,
java.lang.String channel)
context - 保留调用签名;基础上下文已在投递前落盘channel - 拉起通道:pending_intent / intentpublic static void onLaunchFail(java.lang.String exitPoint,
java.lang.String reason,
java.lang.String reasonCategory,
org.json.JSONObject segExt)
pay_launch 失败终态行(outcome=fail,step=exitPoint),
并把本段已缓存的 step 行一并 flush。stage 固定 pay_launch,不再需要 stage/event 入参。public static void onLaunchDeliverFail(android.content.Context context,
java.lang.String exitPoint,
java.lang.String channel,
java.lang.String reason,
java.lang.String reasonCategory,
org.json.JSONObject segExt)
public static void clear()
public static void onPayResp(android.content.Context context,
java.lang.String appId,
java.lang.String command,
java.lang.String prepayId,
int errCode,
java.lang.String errStr)
handleIntent 命中支付回包分支(P6)时调用,立即单发一条
pay_resp_trace(终态结果,低频、避免 App 退出丢失)。回包段用独立 trace_id,
跨段靠 prepay_id 与发起段对账。非支付回包不调用此方法。appId - 当前 appIdcommand - WXPayReportConst.CMD_PAY / WXPayReportConst.CMD_JOINT_PAYprepayId - 回包 PayResp.prepayId(对账主键),可空errCode - 回包 PayResp.errCodeerrStr - 回包 PayResp.errStr(进 ext,截断≤128)