详情

首页手游攻略 微信支付联调如何识别仿真与生产请求?

微信支付联调如何识别仿真与生产请求?

佚名 2026-11-06 17:00:01

联调之前核对支付产品、版本和接口路径,再核对凭据与订单环境。同一主机可以同时服务不同入口。

1. 用完整路径判定已知入口

以 V2 付款码验收的查单接口为例,仿真查单和正式查单使用同一域名,路径不同。下面用 Python 3.9.6 固定域名,只修改路径。白名单仅覆盖这个产品的两种查单路径。

from urllib.parse import urlsplit

HOST = "api.mch.weixin.qq.com"
PATHS = {
    "/xdc/apiv2sandbox/pay/orderquery": "sandbox",
    "/pay/orderquery": "production",
}

def detect(url):
    u = urlsplit(url)
    if (u.scheme, u.netloc) != ("https", HOST) or u.query or u.fragment:
        return "unknown"
    return PATHS.get(u.path, "unknown")

paths = [
    "/xdc/apiv2sandbox/pay/orderquery",
    "/pay/orderquery",
    "/sandboxnew/pay/orderquery",
]
results = [detect("https://" + HOST + path) for path in paths]
assert results == ["sandbox", "production", "unknown"]
for path, environment in zip(paths, results):
    print(path, "=>", environment)

# 实际输出
# /xdc/apiv2sandbox/pay/orderquery => sandbox
# /pay/orderquery => production
# /sandboxnew/pay/orderquery => unknown

第三条路径见于旧版验收场景,本例只把它标为当前白名单外。不要用字符串是否包含 sandbox 来推断能调用哪些接口。

2. 用同一订单核对凭据与数据

V2 付款码仿真请求使用对应的沙箱签名密钥。正式接口按商户与产品配置使用生产凭据。检查运行配置的密钥引用和查单路径;沙箱产生的订单只能按该测试场景在对应环境核对。日志记录环境和商户标识即可,密钥与支付凭证留在受控配置中。

3. 本地桩接口另作一类

本地模拟可验证请求组装、状态处理与异常分支。若目标是官方验收,使用产品指引明确支持的仿真接口。若目标是生产联调,则先确认商户权限、回调地址和允许的验证范围。本文只运行路径判定样例,未发起交易或查单。

相关资讯
点击查看更多
游戏推荐
推荐专题
热门阅读
推荐下载