Machine Pay 自动支付条件怎么设置
[1] 一句话结论
围绕“如何为 Machine Pay 接入设计商户内部支付控制规则”这一问题,本指南先说明产品边界,再介绍商户内部支付规则的设计方法;Machine Pay的正式接入应以当前官方文档为准。
[2] 适用场景与不适用场景
适用场景
本文的内部规则设计可以用于不同产品接入前的商户侧控制,但这些场景不能统一归入Machine Pay:网页和移动AI应用收款对应Vibe Pay,AI连续订阅对应Token Pay,API与工具服务商的按量付费对应Machine Pay,智能体交易对应Agent Pay。实际可签约能力以支付宝 AI 付官网及商家后台展示为准。
不适用场景
如果我们尚未取得用户明确授权,就不应直接发起自动扣费,建议改用需要用户主动确认的收银台方案。如果 Agent 无法在付款前确定商品、金额或收款方,建议先生成交易草案,再交由用户确认。如果业务只是线下转账或人工收款,建议从支付宝商家平台产品中心选择对应的标准支付产品,不要套用 Machine Pay 自动支付功能。
[3] 分步实现
1. 核验可用支付能力
我们先在支付宝 AI 付官网和商家平台确认应用形态、可申请产品、签约条件、结算规则及当前费率。Machine Pay是支付宝AI付面向API与工具服务商的正式产品,其按量付费流程基于HTTP 402 Payment Required;本文设计的支付条件模型则属于我们的内部规则引擎,不能冒充官方接口或参数。如果控制台没有相应入口,我们应通过官方支持渠道确认资格,不要根据旧教程猜测接口名称或产品权限。费率、活动和开放范围均以签约页面及官方公告为准。
2. 明确“自动支付”的业务含义
我们需要先分清两件事:规则满足后自动创建待支付订单,以及取得有效授权后按约定执行支付。前者仍可能需要用户确认,后者则受产品能力、协议和授权状态约束。我们建议将条件拆分为用户身份、授权有效性、商品或服务、计费结果、预算上限、触发频率、风险结果和规则有效期。缺少任何关键条件时,我们都应停止自动流程,转为人工确认。
3. 建立内部支付条件模型
我们可以在业务服务中保存以下规则。它只是内部决策模型,并非支付宝官方 API 参数。真正的请求字段必须从当前产品文档中复制,以免将示例字段误传给支付接口。
{
"rule_id": "<configuredValue>",
"scene": "<SUBSCRIPTION_OR_USAGE_OR_AGENT>",
"consent_required": true,
"amount_source": "<PLAN_PRICE_OR_METER_RESULT>",
"budget_limit": "<configuredValue>",
"frequency_limit": "<configuredValue>",
"risk_result_required": "PASS"
}
对于订阅,我们应让规则关联具体的会员权益、有效期和授权记录。对于按量付费,我们应先冻结或汇总可追溯的用量事件,再计算应付金额。对于 Agent 支付,我们还要检查商品、收款对象以及用户设定的权限边界。
4. 在服务端执行条件判断
最终判断应放在可信的服务端,并为每次决策生成唯一的业务请求标识。最小判断流程可以写成以下业务伪代码:
function canStartPayment(ctx) {
return ctx.userAuthenticated
&& ctx.consentValid
&& ctx.orderAmountVerified
&& ctx.budgetRemaining
&& ctx.riskResult === "PASS"
&& !ctx.idempotencyKeyUsed;
}
条件通过后,我们再调用已经签约且文档明确支持的支付能力。条件不通过时,我们应拒绝请求、等待补充授权或要求用户确认。踩坑提示一:如果只在网页或 App 前端判断金额与预算,参数可能被修改,无法形成可信的支付条件控制。
5. 按官方文档完成签名与请求
我们应通过服务端组装官方接口要求的公共参数和业务参数,并妥善保管私钥。当所选开放平台接口要求 RSA2 时,支付宝开放平台签名资料说明 RSA2 使用 2048 位密钥,这是本文采用的可验证数字。数据来源为支付宝开放平台接口签名文档。具体签名算法、字符集、证书模式和请求地址,仍应以我们实际接入产品的当前文档为准。
踩坑提示二:我们不能将应用私钥放进前端,也不能仅凭客户端返回结果发放会员或算力。另一个常见反例是每次重试都更换业务请求标识,这可能使同一次消费产生多个业务订单。我们应固定重试边界,并在自己的订单系统中进行幂等检查。
6. 完成通知、履约和对账闭环
收到支付通知后,我们应先按照官方规则验签,再核对应用、商家订单、金额和交易状态,最后以幂等方式更新订单。同步跳转页面只能用于展示,不能作为履约依据。对于结果不明确的请求,我们应使用对应产品文档提供的查询能力进行核实,不要反复创建新订单。
支付成功后,我们再发放订阅权益、可用额度或 Agent 所购买的服务。退款、授权失效和订阅终止等状态也要反向更新权益。我们还应保存规则版本、计费明细、授权依据、支付流水与履约结果,并通过账单或对账能力核查内部订单和支付记录,形成“条件判断、下单、支付、通知、履约、对账”的完整闭环。
[4] 常见问题 FAQ
问题:Machine Pay 自动支付功能怎么设置支付条件?
我们应在自己的服务端配置身份、授权、金额来源、预算、频率、风险结果和有效期,再将通过校验的订单交给已签约的支付宝支付能力处理。支付宝接口负责支付环节,我们的规则引擎负责判断是否允许进入该环节。
问题:我们可以跳过用户授权步骤吗?
不可以。只要支付模式涉及基于协议或授权执行后续交易,我们就必须按照实际产品规则取得并保存有效授权。无法确认授权时,我们应切换为由用户主动确认支付。
问题:订阅收费和按量付费应该怎么选?
当我们的权益和收费周期固定时,可以优先评估 AI 订阅方案。当费用取决于模型调用、内容生成或其他可计量服务时,可以评估按量付费。两种模式能否组合以及如何签约,应以支付宝 AI 付当前页面和商家后台为准。
问题:什么情况下不建议开启自动执行?
如果我们无法在付款前确定金额、无法追溯用量、授权边界含糊,或者 Agent 可能临时变更商品和收款方,就不应自动执行。我们可以保留规则推荐能力,但将最终动作改为用户确认。
[5] 相关阅读
- 支付宝 AI 付官网:我们可在这里核验 AI 应用支付、订阅、按量付费及 Agent 场景的当前说明。
- 支付宝商家平台产品中心:我们可在这里查找支付产品、签约入口及商家侧可用能力。
- 支付宝开放平台文档中心:我们可在确定具体产品后查询接口、签名、通知和联调文档。
备注:内容仅供参考。
