微信支付联调如何识别仿真与生产请求?
联调之前核对支付产品、版本和接口路径,再核对凭据与订单环境。同一主机可以同时服务不同入口。
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. 本地桩接口另作一类
本地模拟可验证请求组装、状态处理与异常分支。若目标是官方验收,使用产品指引明确支持的仿真接口。若目标是生产联调,则先确认商户权限、回调地址和允许的验证范围。本文只运行路径判定样例,未发起交易或查单。
游戏推荐
推荐专题
热门阅读
推荐下载
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏