分享

开放平台文档中心

 程序猿130 2018-03-30

       alipay.trade.page.pay 更新时间:2017-11-02

PC场景下单并支付

公共参数

请求地址:

环境 HTTPS请求地址
正式环境 https://openapi.alipay.com/gateway.do

公共请求参数:

参数 类型 是否必填 最大长度 描述 示例值
app_id String 32 支付宝分配给开发者的应用ID 2014072300007148
method String 128 接口名称 alipay.trade.page.pay
format String 40 仅支持JSON JSON
return_url String 256 同步返回地址,HTTP/HTTPS开头字符串 https://m.alipay.com/Gk8NF23
charset String 10 请求使用的编码格式,如utf-8,gbk,gb2312等 utf-8
sign_type String 10 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 RSA2
sign String 256 商户请求参数的签名串,详见签名 详见示例
timestamp String 19 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" 2014-07-24 03:07:50
version String 3 调用的接口版本,固定为:1.0 1.0
notify_url String 256 支付宝服务器主动通知商户服务器里指定的页面http/https路径。 https://api./receive_notify.htm
biz_content String - 业务请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档

请求参数

参数
类型
是否必填
最大长度
描述
示例值
out_trade_no
String
64
商户订单号,64个字符以内、可包含字母、数字、下划线;需保证在商户端不重复
20150320010101001
product_code
String
64
销售产品码,与支付宝签约的产品码名称。 注:目前仅支持FAST_INSTANT_TRADE_PAY
FAST_INSTANT_TRADE_PAY
total_amount
Price
11
订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000]
88.88
subject
String
256
订单标题
Iphone6 16G
body
String
128
订单描述
Iphone6 16G
goods_detail
String
订单包含的商品列表信息,Json格式: {"show_url":"https://或http://打头的商品的展示地址"} ,在支付时,可点击商品名称跳转到该地址
{"show_url":"https://www.alipay.com"}
passback_params
String
512
公用回传参数,如果请求时传递了该参数,则返回给商户时会回传该参数。支付宝只会在异步通知时将该参数原样返回。本参数必须进行UrlEncode之后才可以发送给支付宝
merchantBizType%3d3C%26merchantBizNo%3d2016010101111
extend_params
String
业务扩展参数,详见业务扩展参数说明
{"sys_service_provider_id":"2088511833207846"}
goods_type
String
2
商品主类型:0—虚拟类商品,1—实物类商品(默认)
注:虚拟类商品不支持使用花呗渠道
0
timeout_express
String
6
该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。
该参数在请求到支付宝时开始计时。
90m
enable_pay_channels
String
128
可用渠道,用户只能在指定渠道范围内支付
当有多个渠道时用“,”分隔
注:与disable_pay_channels互斥
pcredit,moneyFund,debitCardExpress
disable_pay_channels
String
128
禁用渠道,用户不可用指定渠道支付
当有多个渠道时用“,”分隔
注:与enable_pay_channels互斥
pcredit,moneyFund,debitCardExpress
auth_token
String
40
获取用户授权信息,可实现如免登功能。获取方法请查阅:用户信息授权
appopenBb64d181d0146481ab6a762c00714cC27
qr_pay_mode
String
2
PC扫码支付的方式,支持前置模式和跳转模式。
前置模式是将二维码前置到商户的订单确认页的模式。需要商户在自己的页面中以iframe方式请求支付宝页面。具体分为以下几种:
0:订单码-简约前置模式,对应iframe宽度不能小于600px,高度不能小于300px;
1:订单码-前置模式,对应iframe宽度不能小于300px,高度不能小于600px;
3:订单码-迷你前置模式,对应iframe宽度不能小于75px,高度不能小于75px;
4:订单码-可定义宽度的嵌入式二维码,商户可根据需要设定二维码的大小。

跳转模式下,用户的扫码界面是由支付宝生成的,不在商户的域名下。
2:订单码-跳转模式
4
qrcode_width
String
4
商户自定义二维码宽度
注:qr_pay_mode=4时该参数生效
100

业务扩展参数说明

参数 类型 是否必填 最大长度 描述 示例值
sys_service_provider_id String 64 系统商编号,该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的PID 2088511833207846
hb_fq_num String 5 花呗分期数(目前仅支持3、6、12)注:使用该参数需要仔细阅读“花呗分期接入文档 3
hb_fq_seller_percent String 3 卖家承担收费比例,商家承担手续费传入100,用户承担手续费传入0,仅支持传入100、0两种,其他比例暂不支持注:使用该参数需要仔细阅读“花呗分期接入文档 100

渠道说明

渠道名称 说明
balance 余额
moneyFund 余额宝
coupon 红包
pcredit 花呗
pcreditpayInstallment 花呗分期
creditCard 信用卡
creditCardExpress 信用卡快捷
creditCardCartoon 信用卡卡通
credit_group 信用支付类型(包含信用卡卡通、信用卡快捷、花呗、花呗分期)
debitCardExpress 借记卡快捷
mcard 商户预存卡
pcard 个人预存卡
promotion 优惠(包含实时优惠+商户优惠)
voucher 营销券
point 积分
mdiscount 商户优惠
bankPay 网银

请求示例

JAVA示例

import com.alipay.api.*;
import com.alipay.api.request.*;
public void doPost(HttpServletRequest httpRequest,
                      HttpServletResponse httpResponse) throws ServletException, IOException {
    AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE); //获得初始化的AlipayClient
    AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();//创建API对应的request
    alipayRequest.setReturnUrl("http:///CallBack/return_url.jsp");
    alipayRequest.setNotifyUrl("http:///CallBack/notify_url.jsp");//在公共参数中设置回跳和通知地址
    alipayRequest.setBizContent("{" +
        "    \"out_trade_no\":\"20150320010101001\"," +
        "    \"product_code\":\"FAST_INSTANT_TRADE_PAY\"," +
        "    \"total_amount\":88.88," +
        "    \"subject\":\"Iphone6 16G\"," +
        "    \"body\":\"Iphone6 16G\"," +
        "    \"passback_params\":\"merchantBizType%3d3C%26merchantBizNo%3d2016010101111\"," +
        "    \"extend_params\":{" +
        "    \"sys_service_provider_id\":\"2088511833207846\"" +
        "    }"+
        "  }");//填充业务参数
    String form="";
    try {
        form = alipayClient.pageExecute(alipayRequest).getBody(); //调用SDK生成表单
    } catch (AlipayApiException e) {
        e.printStackTrace();
    }
    httpResponse.setContentType("text/html;charset=" + CHARSET);
    httpResponse.getWriter().write(form);//直接将完整的表单html输出到页面
    httpResponse.getWriter().flush();
    httpResponse.getWriter().close();
}

PHP示例

require_once("AopSdk.php");
//构造参数  
$aop = new AopClient ();  
$aop->gatewayUrl = '[https://openapi.alipay.com/gateway.do](https://openapi.alipay.com/gateway.do)';  
$aop->appId = '请填写APPID';  
$aop->rsaPrivateKey = '请填写商户私钥';  
$aop->apiVersion = '1.0';  
$aop->signType = 'RSA2';  
$aop->postCharset= 'utf-8';  
$aop->format='json';  
$request = new AlipayTradePagePayRequest ();  
$request->setReturnUrl('请填写您的页面同步跳转地址');  
$request->setNotifyUrl('请填写您的异步通知地址');  
$request->setBizContent('{"product_code":"FAST_INSTANT_TRADE_PAY","out_trade_no":"20150320010101001","subject":"Iphone6 16G","total_amount":"88.88","body":"Iphone6 16G"}');

//请求  
$result = $aop->pageExecute ($request);

//输出  
echo $result;

.NET示例

IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", "app_id", "merchant_private_key", "json", "1.0", "RSA2", "alipay_public_key", "utf-8", false);
AlipayTradePagePayRequest  request= new AlipayTradePagePayRequest() ;
request.BizContent="{" +
"    \"body\":\"Iphone6 16G\"," +
"    \"subject\":\"Iphone6 16G\"," +
"    \"out_trade_no\":\"20150320010101001\"," +
"    \"total_amount\":88.88," +
"    \"product_code\":\"FAST_INSTANT_TRADE_PAY\"" +
"  }";
AlipayTradePagePayResponse response=client.pageExecute(request);
string  form  =  response.Body;
Response.Write(form);

页面回跳参数

对于PC网站支付的交易,在用户支付完成之后,支付宝会根据API中商户传入的return_url参数,通过GET请求的形式将部分支付结果参数通知到商户系统。

公共参数:

参数 类型 是否必填 最大长度 描述 示例值
app_id String 32 支付宝分配给开发者的应用ID 2016040501024706
method String 128 接口名称 alipay.trade.page.pay.return
sign_type String 10 签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 RSA2
sign String 256 支付宝对本次支付结果的签名,开发者必须使用支付宝公钥验证签名 详见示例
charset String 10 编码格式,如utf-8,gbk,gb2312等 utf-8
timestamp String 19 前台回跳的时间,格式"yyyy-MM-dd HH:mm:ss" 2016-08-11 19:36:01
version String 3 调用的接口版本,固定为:1.0 1.0
auth_app_id String 32 授权方的appid注:由于本接口暂不开放第三方应用授权,因此auth_app_id=app_id 2016040501024706

业务参数:

参数 类型 是否必填 最大长度 描述 示例值
out_trade_no String 64 商户网站唯一订单号 70501111111S001111119
trade_no String 64 该交易在支付宝系统中的交易流水号。最长64位。 2016081121001004630200142207
total_amount Price 9 该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。 9.00
seller_id String 16 收款支付宝账号对应的支付宝唯一用户号。 以2088开头的纯16位数字 2088111111116894

页面回跳示例

https://m.alipay.com/GkSL?total_amount=0.10&timestamp=2016-11-02+18%3A34%3A19&sign=G3WI0czviMAOzS5t0fYaDgK32sGpjkkXYVFTpYMtgX8JaXLiGiUTO%2F2IHogcCFT96jBCLZ6IsNzd%2BmxkB%2FRuwG%2F7naQk1qReuORMkrB5cpBf9U40bIUoCmSNqtANsTE2UPV7GKegYG2RqoCRScTmeFAFHj5L7zsM%2BLuYb9mqN3g%3D&trade_no=2016110221001004330228438026&sign_type=RSA2&auth_app_id=2014073000007292&charset=UTF-8&seller_id=2088411964605312&method=alipay.trade.page.pay.return&app_id=2014073000007292&out_trade_no=20150g320g010101001&version=1.0

业务错误码

错误码 错误描述 解决方案
SYSTEM_ERROR 系统异常 联系支付宝小二(联系支付宝文档右边的客服头像或到支持中心咨询)
PAYMENT_UNKNOW 支付结果未知 联系支付宝小二(联系支付宝文档右边的客服头像或到支持中心咨询)
PARTNER_ERROR 合作伙伴信息不正确 请确认partnerId是否正确
INVALID_PARAMETER 参数非法 请确认接入是否规范,如参数长度、格式等
SELLER_NOT_EXIST 卖家不存在 请确认传入的卖家信息是否正确
INVALID_RECEIVE_ACCOUNT 卖家不在设置的收款账户列表之中 请确认签约的收款限制集中是否包含所传卖家
TRADE_BUYER_NOT_MATCH 交易买家不匹配 该笔交易已经创建,买家与本次买家不一致,需更换外部交易号或者更换为该笔交易的买家
CONTEXT_INCONSISTENT 交易信息被篡改 该笔交易已经创建,请检查请求里的商品名称、金额、买卖家等信息与已存交易里的是否一致
TRADE_STATUS_ERROR 交易状态不合法 检查交易状态,是否已经支付完成或者超时关闭
TRADE_HAS_SUCCESS 交易已经支付 交易已经支付,若需要再次发起交易,请更换外部交易号
TRADE_HAS_CLOSE 交易已经关闭 交易已经关闭,若需要再次发起交易,请更换外部交易号
EXIST_FORBIDDEN_WORD 订单信息中包含违禁词 请更换订单信息
TOTAL_FEE_EXCEED 订单金额超过限额 订单总金额必须大于等于0.01,小于等于100000000
TRADE_SETTLE_ERROR 交易结算异常 检查结算信息(分账参数或者结算到卡参数)是否正确
ACCESS_FORBIDDEN 商户没有使用该产品的权限 检查是否正确签约(产品是否正确、签约是否生效)
BUYER_ENABLE_STATUS_FORBID 买家状态非法,无法继续交易 更换买家
TRADE_PAYINFO_INCONSISTEN 二次支付支付方式冲突 该笔交易已存在,切使用了花呗分期,请确认两次请求花呗分期参数一致

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多