PAYATHON 2026

如何根据淘宝他人支付生成的吱口令完成支付宝支付

支付老李

结论

支付宝开放平台没有向普通第三方开发者提供这类公开 API:输入淘宝“他人支付”生成的吱口令,再通过接口发起或完成订单支付。

吱口令用于淘宝和支付宝客户端之间的业务唤起与信息传递,不是开放平台支付接口能够识别的订单号或支付令牌。付款人需要在受支持的淘宝或支付宝客户端中打开、粘贴或识别吱口令,进入官方收银台并确认付款。服务端无法通过解析吱口令代替用户支付。

为什么不能直接调用接口支付

主要有以下原因:

  1. 吱口令不是开放支付参数

    支付宝开放平台常用的支付接口接收商户订单号、金额和商品信息等参数,例如:

    • alipay.trade.app.pay
    • alipay.trade.page.pay
    • alipay.trade.wap.pay
    • alipay.trade.precreate

    这些接口均没有接收吱口令的公开参数。

  2. 淘宝订单不属于第三方商户订单

    淘宝下单后生成的交易订单由淘宝交易系统管理。普通第三方应用不能将其转换成自己的支付宝商户订单,也不能通过开放平台支付接口替淘宝订单收款。

  3. 付款必须经过用户授权

    “他人支付”需要完成付款人身份确认、资金渠道选择、风控校验,以及支付密码或生物验证。即使可以打开相应页面,服务端也不能绕过支付宝收银台自动完成付款。

  4. 第三方不应自行解析口令

    吱口令的格式和跳转规则可能由客户端及内部服务控制,并非稳定的公开协议。通过抓包、逆向或模拟客户端请求来解析口令,不但容易失效,还可能引发账号、资金和合规风险。

正确的操作方式

如需完成淘宝“他人支付”,应使用官方客户端提供的流程:

  1. 下单人在淘宝订单中选择“他人支付”。
  2. 系统生成吱口令或分享内容。
  3. 下单人通过聊天工具将完整内容发送给付款人。
  4. 付款人在淘宝或支付宝客户端中复制、粘贴或打开该内容。
  5. 客户端识别口令,显示订单或付款页面。
  6. 付款人核对收款对象、订单金额和商品信息。
  7. 付款人在官方收银台确认付款。
  8. 下单人返回淘宝订单页面查看支付状态。

如果客户端无法识别,可以重新生成分享内容,或使用淘宝订单页中的官方分享入口。不要将吱口令提交给来源不明的网站或解析服务。

如果是开发自己的代付业务

如果要支付的不是淘宝订单,而是为自己的业务实现“一个用户下单、另一个用户付款”,商户需要自行设计代付流程,并接入适合当前业务场景的支付宝产品。

一般可以按以下流程实现:

  1. 下单人创建商户业务订单。
  2. 商户服务端生成不可预测且具有有效期的代付标识。
  3. 商户将代付链接或二维码分享给付款人。
  4. 付款人访问商户页面。
  5. 商户服务端校验代付标识,并根据业务场景调用支付宝支付接口。
  6. 付款人在支付宝官方收银台确认付款。
  7. 商户验证异步通知的签名,并更新订单状态。

这套方案只适用于商户自己的订单,不能用来接管或支付淘宝生成的订单。

以下是电脑网站支付的基本调用结构:

AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();

request.setReturnUrl("https://example.com/pay/return");
request.setNotifyUrl("https://example.com/pay/notify");

AlipayTradePagePayModel model = new AlipayTradePagePayModel();
model.setOutTradeNo("ORDER_202609090001");
model.setTotalAmount("99.00");
model.setSubject("订单代付");
model.setProductCode("FAST_INSTANT_TRADE_PAY");

request.setBizModel(model);

AlipayTradePagePayResponse response = alipayClient.pageExecute(request);

if (response.isSuccess()) {
    String paymentHtml = response.getBody();
    // 将 paymentHtml 返回给浏览器,由浏览器跳转到支付宝收银台
} else {
    // 记录错误码和错误信息,按实际业务要求处理
}

其中,out_trade_no 必须填写商户自己的订单号,不能使用淘宝订单号或吱口令。具体接口名称、产品权限和可用参数,应以接入时的支付宝开放平台文档及商户签约情况为准。

收到异步通知后,还需要验证签名并核对关键字段:

boolean verified = AlipaySignature.rsaCheckV1(
    requestParams,
    alipayPublicKey,
    "UTF-8",
    "RSA2"
);

if (verified) {
    // 继续核对 app_id、out_trade_no、total_amount、seller_id 和 trade_status
    // 核对无误后,以幂等方式更新订单状态
}

不能仅根据同步跳转结果判断支付是否成功。可靠的订单状态应以验签通过的异步通知或主动查询结果为准。

注意事项

  • 没有一种通用的公开调用方式,可以将吱口令直接传给 alipay.trade.* 接口。
  • 不要将吱口令作为 trade_no、out_trade_no、auth_code 或二维码付款码使用。
  • 付款码支付中的 auth_code 和吱口令是两种不同的数据,不能互换。
  • 不要模拟淘宝或支付宝客户端请求,以此绕过官方收银台。
  • 不要要求付款人提供支付密码、短信验证码或客户端登录凭证。
  • 开发代付功能前,应确认支付宝产品签约、业务准入、资金流向和退款责任符合要求。
  • 如果涉及淘宝商家或平台合作项目,应通过淘宝开放平台或支付宝官方商务渠道,确认是否提供定向能力。内部或邀约能力不属于普通开发者可以调用的公开接口。

备注:内容仅供参考。