iCloud官方网页版入口 iCloud电脑端网页版官网入口
2026-11-02
2026-11-06 0
体验版可能走生产支付。后端先识别并确认测试订单已付款,再生成可重试的退款任务。
下面以普通商户 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 None用服务端验证过的支付结果和内部测试标记生成退款任务。
python3 policy.py 0
# approved test ('auto-demo-01', 30)只去掉测试资格,其余条件一致。
python3 policy.py 1
# ordinary order None恢复测试资格,只改变支付状态。
python3 policy.py 2
# unpaid test None重新使用基线输入,退款任务保留原编号。
python3 policy.py 3
# retry ('auto-demo-01', 30)将退款任务持久化,以商户和退款单号设唯一约束。编号应符合接口要求,适配实际订单号的长度与字符范围。发起退款前查询并扣除已申请或已完成的退款额度。遇到响应超时,用原退款单号查单,再按原编号重试。
调用申请退款后,通过已验签并解密的通知或查询退款单确认终态。生产体验版仅用于授权的真实联调范围,并限制测试人和订单。客户端的 envVersion 可辅助诊断,测试标记应由服务端写入。本文仅执行本地筛选样例,未发真实支付或退款请求。