微信小程序体验版的支付测试单怎样自动退款?
体验版可能走生产支付。后端先识别并确认测试订单已付款,再生成可重试的退款任务。
下面以普通商户 API v3 小程序支付为例。先将代码保存为 policy.py,用 Python 3.9.6 运行。基线为同一笔 30 分测试订单,逐项改变支付状态和测试资格。这里的金额上限是示例业务策略。
import sys
from dataclasses import dataclass, replace
@dataclass(frozen=True)
class Order:
number: str
paid: bool
approved_test: bool
merchant: str
amount: int
def plan(order):
if not (order.paid and order.approved_test
and order.merchant == "allowlisted" and 0 < order.amount <= 100):
return None
return f"auto-{order.number}", order.amount
base = Order("demo-01", True, True, "allowlisted", 30)
cases = [
("approved test", base),
("ordinary order", replace(base, approved_test=False)),
("unpaid test", replace(base, paid=False)),
("retry", base),
]
case = int(sys.argv[1])
name, order = cases[case]
print(name, plan(order))
assert plan(base) == ("auto-demo-01", 30)
assert plan(cases[1][1]) is None and plan(cases[2][1]) is None1. 通过白名单的已支付测试单
用服务端验证过的支付结果和内部测试标记生成退款任务。
python3 policy.py 0
# approved test ('auto-demo-01', 30)2. 普通订单
只去掉测试资格,其余条件一致。
python3 policy.py 1
# ordinary order None3. 尚未付款的测试单
恢复测试资格,只改变支付状态。
python3 policy.py 2
# unpaid test None4. 任务重试
重新使用基线输入,退款任务保留原编号。
python3 policy.py 3
# retry ('auto-demo-01', 30)将退款任务持久化,以商户和退款单号设唯一约束。编号应符合接口要求,适配实际订单号的长度与字符范围。发起退款前查询并扣除已申请或已完成的退款额度。遇到响应超时,用原退款单号查单,再按原编号重试。
调用申请退款后,通过已验签并解密的通知或查询退款单确认终态。生产体验版仅用于授权的真实联调范围,并限制测试人和订单。客户端的 envVersion 可辅助诊断,测试标记应由服务端写入。本文仅执行本地筛选样例,未发真实支付或退款请求。
游戏推荐
推荐专题
热门阅读
-
-
-
-
- 微信支付正式上线前怎样核对配置和首笔交易?
- 11.06
-
- 微信小程序体验版的支付测试单怎样自动退款?
- 11.06
-
- Muse 手机号与邮箱验证|操作说明
- 11.06
推荐下载
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏