按量付费预下单接口

更新时间:

接口说明

接口名称:alipay.aipay.agent.payment.precreate

公共请求参数

参数类型是否必选最大长度描述示例值
app_idString必选32支付宝分配给开发者的应用 ID2014072300007148
methodString必选128接口名称alipay.aipay.agent.payment.precreate
formatString可选40仅支持JSONJSON
charsetString必选10请求使用的编码格式,如utf-8,gbk,gb2312等utf-8
sign_typeString必选10商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2RSA2
signString必选344商户请求参数的签名串,详见签名详见示例
timestampString必选19发送请求的时间,格式”yyyy-MM-dd HH:mm
”
2014-07-24 03:07:50
versionString必选3调用的接口版本,固定为:1.01.0
notify_urlString可选128商户回调地址-
biz_contentString必选-请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档-

业务请求参数

参数是否必选类型与长度描述示例值
pay_before必选string [1,32]支付截止时间,超过后禁止支付2026-09-15T18:00:00+08:00
amount必选string [1,32]接口付费金额,单位元;不超过 50 元0.01
goods_name必选string [1,32]商品或服务名称天气查询服务
service_id必选string [1,32]按量付费注册分配的服务 IDAPI2094383984
out_trade_no必选string [1,32]商户自身订单号,用于幂等控制merchant001
memo可选string [1,32]交易备注,用于账单展示青铜套餐
currency可选string [1,32]币种,仅支持 CNYCNY

service_id 的获取方式见常见问题。

常见请求示例

以下为开放平台的第三方代调用示例;自研应用不使用示例中的 app_auth_token。

package com.java.sdk.demo;

import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.AlipayConfig;
import com.alipay.api.domain.AlipayAipayAgentPaymentPrecreateModel;
import com.alipay.api.request.AlipayAipayAgentPaymentPrecreateRequest;
import com.alipay.api.response.AlipayAipayAgentPaymentPrecreateResponse;

import com.alipay.api.FileItem;
import java.util.Base64;
import java.util.ArrayList;
import java.util.List;

public class AlipayAipayAgentPaymentPrecreate {

    public static void main(String[] args) throws AlipayApiException {
        // 初始化SDK
        AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig());

        // 构造请求参数以调用接口
        AlipayAipayAgentPaymentPrecreateRequest request = new AlipayAipayAgentPaymentPrecreateRequest();
        AlipayAipayAgentPaymentPrecreateModel model = new AlipayAipayAgentPaymentPrecreateModel();

        // 业务参数与开放平台的预下单接口示例保持一致。
        model.setMemo("青铜套餐");
        model.setPayBefore("2026-09-15T18:00:00+08:00");
        model.setCurrency("CNY");
        model.setAmount("0.01");
        model.setGoodsName("天气查询服务");
        model.setServiceId("API2094383984");
        model.setOutTradeNo("merchant001");

        request.setBizModel(model);
        // 第三方代调用时设置应用授权令牌。
        // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");
        AlipayAipayAgentPaymentPrecreateResponse response = alipayClient.execute(request);
        System.out.println(response.getBody());

        if (response.isSuccess()) {
            System.out.println("调用成功");
        } else {
            System.out.println("调用失败");
            // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接
            // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response);
            // System.out.println(diagnosisUrl);
        }
    }

    private static AlipayConfig getAlipayConfig() {
        String privateKey  = "<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->";
        String alipayPublicKey = "<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->";
        AlipayConfig alipayConfig = new AlipayConfig();
        alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
        alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
        alipayConfig.setPrivateKey(privateKey);
        alipayConfig.setFormat("json");
        alipayConfig.setAlipayPublicKey(alipayPublicKey);
        alipayConfig.setCharset("UTF-8");
        alipayConfig.setSignType("RSA2");
        return alipayConfig;
    }
}
using System;
using System.Collections.Generic;
using Aop.Api;
using Aop.Api.Request;
using Aop.Api.Response;
using Aop.Api.Domain;
using Aop.Api.Util;
namespace SdkDemoTest
{
    public class AlipayAipayAgentPaymentPrecreate
    {
        public static void Main(string[] args)
        {
            // 初始化SDK
            IAopClient alipayClient = new DefaultAopClient(GetAlipayConfig());
            // 构造请求参数以调用接口
            AlipayAipayAgentPaymentPrecreateRequest request = new AlipayAipayAgentPaymentPrecreateRequest();
            AlipayAipayAgentPaymentPrecreateModel model = new AlipayAipayAgentPaymentPrecreateModel();

            // 业务参数与开放平台的预下单接口示例保持一致。
            model.Memo = "青铜套餐";
            model.PayBefore = "2026-09-15T18:00:00+08:00";
            model.Currency = "CNY";
            model.Amount = "0.01";
            model.GoodsName = "天气查询服务";
            model.ServiceId = "API2094383984";
            model.OutTradeNo = "merchant001";

            request.SetBizModel(model);
            // 第三方代调用时设置应用授权令牌。
            // request.PutOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");
            AlipayAipayAgentPaymentPrecreateResponse response = alipayClient.Execute(request);

            if(!response.IsError)
            {
                Console.WriteLine("调用成功");
            }
            else
            {
                Console.WriteLine("调用失败");
            }
        }

        private static AlipayConfig GetAlipayConfig()
        {
            string privateKey  = "<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->";
            string alipayPublicKey = "<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->";
            AlipayConfig alipayConfig = new AlipayConfig();
            alipayConfig.ServerUrl = "https://openapi.alipay.com/gateway.do";
            alipayConfig.AppId = "<-- 请填写您的AppId,例如:2019091767145019 -->";
            alipayConfig.PrivateKey = privateKey;
            alipayConfig.Format = "json";
            alipayConfig.AlipayPublicKey = alipayPublicKey;
            alipayConfig.Charset = "UTF-8";
            alipayConfig.SignType = "RSA2";
            return alipayConfig;
        }
    }
}
<?php
require_once '../aop/AopClient.php';
require_once '../aop/AopCertClient.php';
require_once '../aop/AopCertification.php';
require_once '../aop/AlipayConfig.php';
require_once '../aop/request/AlipayAipayAgentPaymentPrecreateRequest.php';

// 初始化SDK
$alipayClient = new AopClient(getAlipayConfig());
// 构造请求参数以调用接口
$request = new AlipayAipayAgentPaymentPrecreateRequest();
$model = array();

// 业务参数与开放平台的预下单接口示例保持一致。
$model['memo'] = "青铜套餐";
$model['pay_before'] = "2026-09-15T18:00:00+08:00";
$model['currency'] = "CNY";
$model['amount'] = "0.01";
$model['goods_name'] = "天气查询服务";
$model['service_id'] = "API2094383984";
$model['out_trade_no'] = "merchant001";

$request->setBizContent(json_encode($model,JSON_UNESCAPED_UNICODE));
// 第三方代调用时,传入应用授权令牌。
$responseResult = $alipayClient->execute($request, null, "<-- 请填写应用授权令牌 -->", null);
$responseApiName = str_replace(".","_",$request->getApiMethodName())."_response";
$response = $responseResult->$responseApiName;
if(!empty($response->code)&&$response->code==10000){
    echo("调用成功");
}
else{
    echo("调用失败");
}

function getAlipayConfig()
{
    $privateKey  = '<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->';
    $alipayPublicKey = '<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->';
    $alipayConfig = new AlipayConfig();
    $alipayConfig->setServerUrl('https://openapi.alipay.com/gateway.do');
    $alipayConfig->setAppId('<-- 请填写您的AppId,例如:2019091767145019 -->');
    $alipayConfig->setPrivateKey($privateKey);
    $alipayConfig->setFormat('json');
    $alipayConfig->setAlipayPublicKey($alipayPublicKey);
    $alipayConfig->setCharset('UTF-8');
    $alipayConfig->setSignType('RSA2');
    return $alipayConfig;
}
curl 'https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.aipay.agent.payment.precreate&format=json&sign=${sign}&app_id=${appid}&version=1.0&sign_type=RSA2&timestamp=${now}' \
  -F 'app_auth_token=${app_auth_token}' \
  -F 'biz_content={
    "memo":"青铜套餐",
    "pay_before":"2026-09-15T18:00:00+08:00",
    "currency":"CNY",
    "amount":"0.01",
    "goods_name":"天气查询服务",
    "service_id":"API2094383984",
    "out_trade_no":"merchant001"
  }'

公共响应参数

参数类型是否必选描述示例值
codeString必选网关返回码,详见文档40004
msgString必选网关返回码描述,详见文档Business Failed
sub_codeString可选业务返回码,参见具体的 API 接口文档-
sub_msgString可选业务返回码描述,参见具体的 API 接口文档-
signString必选签名,详见文档DZXh8eeTuAHoYE3w1J…

业务响应参数

参数是否必选类型与长度描述示例值
qr_code_url可选string (1024)支付二维码链接,仅接入商户通知的返回https://example.com/qrcodes/pay_20260915_000001.png
amt_pre_pay_id必选string (32)按量付费预下单订单号,用于后续支付amt_pre_pay_20260915_000001

响应示例

{
  "alipay_aipay_agent_payment_precreate_response": {
    "code": "10000",
    "msg": "Success",
    "qr_code_url": "https://example.com/qrcodes/pay_20260915_000001.png",
    "amt_pre_pay_id": "amt_pre_pay_20260915_000001"
  },
  "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}

预下单成功后,商家按接入指南将 amt_pre_pay_id 通过 amtPaymentLink 响应头返回给调用方,并返回 HTTP 402 Payment Required。

公共错误码

前往查看公共错误码

业务错误码

错误码错误描述解决方案
SYSTEM_ERROR系统繁忙服务器异常或网络异常时,官方接口页允许使用同一请求重试
INVALID_PARAMETER参数有误根据接口返回的具体参数错误信息修正后重试