接口说明
接口名称:alipay.trade.price.create
支持第三方代理调用:本接口支持第三方开发者代用户发起调用。
通用场景
价格创建接口。
公共请求参数
参数 类型 是否必选 最大长度 描述 示例值 app_idString 必选 32 支付宝分配给开发者的应用 ID 2014072300007148methodString 必选 128 接口名称 alipay.trade.price.createformatString 可选 40 仅支持JSON JSONcharsetString 必选 10 请求使用的编码格式,如utf-8,gbk,gb2312等 utf-8sign_typeString 必选 10 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 RSA2signString 必选 344 商户请求参数的签名串,详见签名 详见示例timestampString 必选 19 发送请求的时间,格式”yyyy-MM-dd HH:mm
” 2014-07-24 03:07:50versionString 必选 3 调用的接口版本,固定为:1.0 1.0app_auth_tokenString 可选 40 详见应用授权概述 - biz_contentString 必选 - 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档 -
业务请求参数
参数 类型 是否必选 最大长度 描述 注意事项/枚举值 示例值 unit_amountNumber 特殊可选 1000000000 单位金额,单位:分 当 custom_unit_amount 为空时必选 1000custom_unit_amountCustomUnitAmount 特殊可选 - 自定义单价,当 unit_amount 为空时必选 当 unit_amount 为空时必选 - custom_unit_amount.enableBoolean 必选 10 是否启用灵活定价,启用后可设置 preset、maximum、minimum 字段 - truecustom_unit_amount.presetNumber 可选 32 预设的自定义价格(单位:分),灵活定价开启后可设置 - 88888custom_unit_amount.maximumNumber 可选 32 可自定义的最大金额(单位:分),灵活定价开启后可设置 - 1000000000custom_unit_amount.minimumNumber 可选 32 可自定义的最小金额(单位:分),灵活定价开启后可设置 - 100product_idString 特殊可选 32 商品 ID,通过商品创建接口获取;和product_data二选其一 当未传入product_data时必选 202603230010000006783product_dataProductData 特殊可选 - 商品模型,可以通过该参数一并创建商品信息 当未传入product_id时必选 - product_data.nameString 必选 255 商品名称 - Gold 会员product_data.descriptionString 必选 255 商品描述 - 基础权益product_data.metadataString 可选 2000 商户需要保存在商品模型中的元数据 - {"key":"value"}recurringRecurringConfig 可选 - 循环计价配置,用于订阅等场景 - - recurring.intervalString 必选 32 计价周期单位,和interval_count组合使用 月:MONTH 年:YEAR 日:DAY MONTHrecurring.interval_countNumber 必选 32 计价周期间隔,和interval组合使用 - 1eligibility_typeString 可选 32 只有满足该类型的身份才可以购买。具体的枚举值待支付宝侧分配 - "student"eligibility_expire_timeString 可选 32 满足了eligibility_type的身份购买后,失效的时间。如3d = 3天, 3m = 3月 - "3d"metadataString 可选 2000 商户需要保存在价格模型中的元数据 - {"key":"value"}
常见请求示例
Java
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.ProductData;
import com.alipay.api.domain.RecurringConfig;
import com.alipay.api.domain.CustomUnitAmount;
import com.alipay.api.request.AlipayTradePriceCreateRequest;
import com.alipay.api.response.AlipayTradePriceCreateResponse;
import com.alipay.api.domain.AlipayTradePriceCreateModel;
import com.alipay.api.FileItem;
import java.util.Base64;
import java.util.ArrayList;
import java.util.List;
public class AlipayTradePriceCreate {
public static void main ( String [] args ) throws AlipayApiException {
// 初始化SDK
AlipayClient alipayClient = new DefaultAlipayClient ( getAlipayConfig ());
// 构造请求参数以调用接口
AlipayTradePriceCreateRequest request = new AlipayTradePriceCreateRequest ();
AlipayTradePriceCreateModel model = new AlipayTradePriceCreateModel ();
// 设置单位金额
model. setUnitAmount ( 1000L );
// 设置自定义单价
CustomUnitAmount customUnitAmount = new CustomUnitAmount ();
customUnitAmount. setEnable ( true );
customUnitAmount. setMaximum ( 1000000000L );
customUnitAmount. setPreset ( 88888L );
customUnitAmount. setMinimum ( 100L );
model. setCustomUnitAmount (customUnitAmount);
// 设置商品id
model. setProductId ( "202603230010000006783" );
// 设置商品信息
ProductData productData = new ProductData ();
productData. setMetadata ( "{ \" key \" : \" value \" }" );
productData. setName ( "Gold 会员" );
productData. setDescription ( "基础权益" );
model. setProductData (productData);
// 设置循环计价模型
RecurringConfig recurring = new RecurringConfig ();
recurring. setIntervalCount ( 1L );
recurring. setInterval ( "MONTH" );
model. setRecurring (recurring);
// 设置价格限定购买的身份类型
model. setEligibilityType ( " \" student \" " );
// 设置指定身份购买后的时效时间
model. setEligibilityExpireTime ( " \" 3d \" " );
// 设置价格信息元数据
model. setMetadata ( "{ \" key \" : \" value \" }" );
request. setBizModel (model);
// 第三方代调用模式下请设置app_auth_token
// request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");
AlipayTradePriceCreateResponse 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;
}
}
PHP
<? 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/AlipayTradePriceCreateRequest.php' ;
// 初始化SDK
$alipayClient = new AopClient ( getAlipayConfig ());
// 构造请求参数以调用接口
$request = new AlipayTradePriceCreateRequest ();
$model = array ();
// 设置单位金额
$model[ 'unit_amount' ] = 1000 ;
// 设置自定义单价
$customUnitAmount = array ();
$customUnitAmount[ 'enable' ] = true ;
$customUnitAmount[ 'maximum' ] = 1000000000 ;
$customUnitAmount[ 'preset' ] = 88888 ;
$customUnitAmount[ 'minimum' ] = 100 ;
$model[ 'custom_unit_amount' ] = $customUnitAmount;
// 设置商品id
$model[ 'product_id' ] = "202603230010000006783" ;
// 设置商品信息
$productData = array ();
$productData[ 'metadata' ] = "{ \" key \" : \" value \" }" ;
$productData[ 'name' ] = "Gold 会员" ;
$productData[ 'description' ] = "基础权益" ;
$model[ 'product_data' ] = $productData;
// 设置循环计价模型
$recurring = array ();
$recurring[ 'interval_count' ] = 1 ;
$recurring[ 'interval' ] = "MONTH" ;
$model[ 'recurring' ] = $recurring;
// 设置价格限定购买的身份类型
$model[ 'eligibility_type' ] = " \" student \" " ;
// 设置指定身份购买后的时效时间
$model[ 'eligibility_expire_time' ] = " \" 3d \" " ;
// 设置价格信息元数据
$model[ 'metadata' ] = "{ \" key \" : \" value \" }" ;
$request -> setBizContent ( json_encode ($model, JSON_UNESCAPED_UNICODE ));
// 如果是第三方代调用模式,请设置app_auth_token(应用授权令牌)
$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;
}
C#
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 AlipayTradePriceCreate
{
public static void Main ( string [] args )
{
// 初始化SDK
IAopClient alipayClient = new DefaultAopClient ( GetAlipayConfig ());
// 构造请求参数以调用接口
AlipayTradePriceCreateRequest request = new AlipayTradePriceCreateRequest ();
AlipayTradePriceCreateModel model = new AlipayTradePriceCreateModel ();
// 设置单位金额
model.UnitAmount = 1000 ;
// 设置自定义单价
CustomUnitAmount customUnitAmount = new CustomUnitAmount ();
customUnitAmount.Enable = true ;
customUnitAmount.Maximum = 1000000000 ;
customUnitAmount.Preset = 88888 ;
customUnitAmount.Minimum = 100 ;
model.CustomUnitAmount = customUnitAmount;
// 设置商品id
model.ProductId = "202603230010000006783" ;
// 设置商品信息
ProductData productData = new ProductData ();
productData.Metadata = "{ \" key \" : \" value \" }" ;
productData.Name = "Gold 会员" ;
productData.Description = "基础权益" ;
model.ProductData = productData;
// 设置循环计价模型
RecurringConfig recurring = new RecurringConfig ();
recurring.IntervalCount = 1 ;
recurring.Interval = "MONTH" ;
model.Recurring = recurring;
// 设置价格限定购买的身份类型
model.EligibilityType = " \" student \" " ;
// 设置指定身份购买后的时效时间
model.EligibilityExpireTime = " \" 3d \" " ;
// 设置价格信息元数据
model.Metadata = "{ \" key \" : \" value \" }" ;
request. SetBizModel (model);
// 第三方代调用模式下请设置app_auth_token
// request.PutOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");
AlipayTradePriceCreateResponse 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;
}
}
}
cURL
curl 'https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.trade.price.create&format=json&sign=${sign}&app_id=${appid}&version=1.0&sign_type=RSA2×tamp=${now}' \
-F 'app_auth_token=${app_auth_token}' \
-F 'biz_content={
"unit_amount":1000,
"custom_unit_amount":{
"enable":true,
"maximum":1000000000,
"preset":88888,
"minimum":100
},
"product_id":"202603230010000006783",
"product_data":{
"metadata":"{\"key\":\"value\"}",
"name":"Gold 会员",
"description":"基础权益"
},
"recurring":{
"interval_count":1,
"interval":"MONTH"
},
"eligibility_type":"\"student\"",
"eligibility_expire_time":"\"3d\"",
"metadata":"{\"key\":\"value\"}"
}'
公共响应参数
参数 类型 是否必选 描述 示例值 code String 必选 网关返回码,详见文档 40004 msg String 必选 网关返回码描述,详见文档 Business Failed sub_code String 可选 业务返回码,参见具体的 API 接口文档 - sub_msg String 可选 业务返回码描述,参见具体的 API 接口文档 - sign String 必选 签名,详见文档 DZXh8eeTuAHoYE3w1J…
业务响应参数
参数 类型 是否必选 最大长度 描述 注意事项/枚举值 示例值 price_idString 必选 32 价格实例id - 202603230010000006783product_idString 必选 32 本次创建的商品或请求关联的商品 ID - 202603230010000006783
响应示例
正常示例
{
"alipay_trade_price_create_response" :{
"code" : "10000" ,
"msg" : "Success" ,
"price_id" : "202603230010000006783" ,
"product_id" : "202603230010000006783"
},
"sign" : "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}
异常示例
{ "alipay_trade_price_create_response" :{ "code" : "20000" , "msg" : "Service Currently Unavailable" , "sub_code" : "isp.unknow-error" , "sub_msg" : "系统繁忙" }, "sign" : "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE" }
业务错误码
错误码 错误描述 解决方案 SYSTEM_ERROR系统繁忙 服务器异常 可能发生了网络或者系统异常,导致服务调用失败,商户可以用同样的请求发起重试 INVALID_PARAMETER参数有误 请根据接口返回的参数非法的具体错误信息,修改参数后进行重试