﻿## 接口说明
接口名称：`alipay.trade.page.pay`

该接口是页面跳转接口，用于生成用户访问支付宝的跳转链接。请在服务端执行支付宝SDK中pageExecute方法，读取响应中的body()结果。该结果用于跳转到支付宝页面，返回到用户浏览器渲染或重定向跳转到支付宝页面。

## 公共请求参数
| **参数** | **类型** | **是否必选** | **最大长度** | **描述** | **示例值** |
| --- | --- | --- | --- | --- | --- |
| 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](https://m.alipay.com/Gk8NF23) |
| charset | String | 必选 | 10 | 请求使用的编码格式，如utf-8,gbk,gb2312等 | utf-8 |
| sign_type | String | 必选 | 10 | 商户生成签名字符串所使用的签名算法类型，目前支持RSA2和RSA，推荐使用RSA2 | RSA2 |
| sign | String | 必选 | 344 | 商户请求参数的签名串，详见[签名](https://ideservice.alipay.com/cms/site/02khjm) | 详见示例 |
| 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路径。 | [http://api.test.alipay.net/atinterface/receive_notify.htm](http://api.test.alipay.net/atinterface/receive_notify.htm) |
| app_auth_token | String | 可选 | 40 | 详见[应用授权概述](https://ideservice.alipay.com/cms/site/04h2nx) |  |
| biz_content | String | 必选 |  | 请求参数的集合，最大长度不限，除公共参数外所有请求参数都必须放在这个参数中传递，具体参照各产品快速接入文档 |  |


## 业务请求参数

| 参数 | 类型 | 是否必选 | 最大长度 | 描述 | 示例值 |
| --- | --- | --- | --- | --- | --- |
| `out_trade_no` | String | 必选 | 64 | 商户订单号。由商家自定义，64 个字符以内，仅支持字母、数字、下划线，且需保证在商户端不重复。 | `20150320010101001` |
| `total_amount` | Price | 必选 | 11 | 订单总金额。单位为元，精确到小数点后两位，取值范围：`[0.01,100000000]`。 | `88.88` |
| `subject` | String | 必选 | 256 | 订单标题。256 个字符以内，不可使用特殊字符，如 `/`、`=`、`&` 等。 | `Iphone6 16G` |
| `product_code` | String | 必选 | 64 | 产品码。商家和支付宝签约的产品码。枚举值：[`FAST_INSTANT_TRADE_PAY`](https://opensupport.alipay.com/support/codelab/detail/766/772)：新快捷即时到账产品。目前仅支持 `FAST_INSTANT_TRADE_PAY`。 | `FAST_INSTANT_TRADE_PAY` |
| `goods_detail` | GoodsDetail[] | 可选 | - | 订单包含的商品列表信息，JSON 格式。 | - |
| `time_expire` | String | 可选 | 32 | 订单绝对超时时间。格式为 `yyyy-MM-dd HH:mm:ss`。超时时间范围：`1m~15d`。 | `2016-12-31 10:05:01` |
| `extend_params` | ExtendParams | 可选 | - | 业务扩展参数。 | - |


## 常见请求示例

::::aipay-tabs{defaultActiveKey="Java"}
:::aipay-tab{key="Java" title="Java"}
```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.AlipayTradePagePayModel;
import com.alipay.api.domain.ExtUserInfo;
import com.alipay.api.domain.InvoiceKeyInfo;
import com.alipay.api.response.AlipayTradePagePayResponse;
import com.alipay.api.domain.InvoiceInfo;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.alipay.api.domain.ExtendParams;
import com.alipay.api.domain.GoodsDetail;
import com.alipay.api.domain.SubMerchant;

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

public class AlipayTradePagePay {

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

        // 构造请求参数以调用接口
        AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
        AlipayTradePagePayModel model = new AlipayTradePagePayModel();
        
        // 设置商户订单号
        model.setOutTradeNo("20150320010101001");
        
        // 设置订单总金额
        model.setTotalAmount("88.88");
        
        // 设置订单标题
        model.setSubject("Iphone6 16G");
        
        // 设置产品码
        model.setProductCode("FAST_INSTANT_TRADE_PAY");
        
        // 设置PC扫码支付的方式
        model.setQrPayMode("1");
        
        // 设置商户自定义二维码宽度
        model.setQrcodeWidth(100L);
        
        // 设置订单包含的商品列表信息
        List<GoodsDetail> goodsDetail = new ArrayList<GoodsDetail>();
        GoodsDetail goodsDetail0 = new GoodsDetail();
        goodsDetail0.setGoodsName("ipad");
        goodsDetail0.setAlipayGoodsId("20010001");
        goodsDetail0.setQuantity(1L);
        goodsDetail0.setPrice("2000");
        goodsDetail0.setGoodsId("apple-01");
        goodsDetail0.setGoodsCategory("34543238");
        goodsDetail0.setCategoriesTree("124868003|126232002|126252004");
        goodsDetail0.setShowUrl("http://www.alipay.com/xxx.jpg");
        goodsDetail.add(goodsDetail0);
        model.setGoodsDetail(goodsDetail);
        
        // 设置订单绝对超时时间
        model.setTimeExpire("2016-12-31 10:05:01");
        
        // 设置二级商户信息
        SubMerchant subMerchant = new SubMerchant();
        subMerchant.setMerchantId("2088000603999128");
        subMerchant.setMerchantType("alipay");
        model.setSubMerchant(subMerchant);
        
        // 设置业务扩展参数
        ExtendParams extendParams = new ExtendParams();
        extendParams.setSysServiceProviderId("2088511833207846");
        extendParams.setHbFqSellerPercent("100");
        extendParams.setHbFqNum("3");
        extendParams.setIndustryRefluxInfo("{\"scene_code\":\"metro_tradeorder\",\"channel\":\"xxxx\",\"scene_data\":{\"asset_name\":\"ALIPAY\"}}");
        extendParams.setRoyaltyFreeze("true");
        extendParams.setCardType("S0JP0000");
        model.setExtendParams(extendParams);
        
        // 设置商户传入业务信息
        model.setBusinessParams("{\"mc_create_trade_ip\":\"127.0.0.1\"}");
        
        // 设置优惠参数
        model.setPromoParams("{\"storeIdType\":\"1\"}");
        
        // 设置请求后页面的集成方式
        model.setIntegrationType("PCWEB");
        
        // 设置请求来源地址
        model.setRequestFromUrl("https://");
        
        // 设置商户门店编号
        model.setStoreId("NJ_001");
        
        // 设置商户的原始订单号
        model.setMerchantOrderNo("20161008001");
        
        // 设置外部指定买家
        ExtUserInfo extUserInfo = new ExtUserInfo();
        extUserInfo.setCertType("IDENTITY_CARD");
        extUserInfo.setCertNo("362334768769238881");
        extUserInfo.setMobile("16587658765");
        extUserInfo.setName("李明");
        extUserInfo.setMinAge("18");
        extUserInfo.setNeedCheckInfo("F");
        extUserInfo.setIdentityHash("27bfcd1dee4f22c8fe8a2374af9b660419d1361b1c207e9b41a754a113f38fcc");
        model.setExtUserInfo(extUserInfo);
        
        // 设置开票信息
        InvoiceInfo invoiceInfo = new InvoiceInfo();
        InvoiceKeyInfo keyInfo = new InvoiceKeyInfo();
        keyInfo.setTaxNum("1464888883494");
        keyInfo.setIsSupportInvoice(true);
        keyInfo.setInvoiceMerchantName("ABC|003");
        invoiceInfo.setKeyInfo(keyInfo);
        invoiceInfo.setDetails("[{\"code\":\"100294400\",\"name\":\"服饰\",\"num\":\"2\",\"sumPrice\":\"200.00\",\"taxRate\":\"6%\"}]");
        model.setInvoiceInfo(invoiceInfo);
        
        request.setBizModel(model);
        // 第三方代调用模式下请设置app_auth_token
        // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");

        AlipayTradePagePayResponse response = alipayClient.pageExecute(request, "POST");
        // 如果需要返回GET请求，请使用
        // AlipayTradePagePayResponse response = alipayClient.pageExecute(request, "GET");
        String pageRedirectionData = response.getBody();
        System.out.println(pageRedirectionData);

        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;
    }
}
```
:::

:::aipay-tab{key="C#" title="C#"}
```csharp
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 AlipayTradePagePay
    {
        public static void Main(string[] args) 
        {
            // 初始化SDK
            IAopClient alipayClient = new DefaultAopClient(GetAlipayConfig());
            // 构造请求参数以调用接口
            AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
            AlipayTradePagePayModel model = new AlipayTradePagePayModel();
            
            // 设置商户订单号
            model.OutTradeNo = "20150320010101001";
            
            // 设置订单总金额
            model.TotalAmount = "88.88";
            
            // 设置订单标题
            model.Subject = "Iphone6 16G";
            
            // 设置产品码
            model.ProductCode = "FAST_INSTANT_TRADE_PAY";
            
            // 设置PC扫码支付的方式
            model.QrPayMode = "1";
            
            // 设置商户自定义二维码宽度
            model.QrcodeWidth = 100;
            
            // 设置订单包含的商品列表信息
            List<GoodsDetail> goodsDetail = new List<GoodsDetail>();
            GoodsDetail goodsDetail0 = new GoodsDetail();
            goodsDetail0.GoodsName = "ipad";
            goodsDetail0.AlipayGoodsId = "20010001";
            goodsDetail0.Quantity = 1;
            goodsDetail0.Price = "2000";
            goodsDetail0.GoodsId = "apple-01";
            goodsDetail0.GoodsCategory = "34543238";
            goodsDetail0.CategoriesTree = "124868003|126232002|126252004";
            goodsDetail0.ShowUrl = "http://www.alipay.com/xxx.jpg";
            goodsDetail.Add(goodsDetail0);
            model.GoodsDetail = goodsDetail;
            
            // 设置订单绝对超时时间
            model.TimeExpire = "2016-12-31 10:05:01";
            
            // 设置二级商户信息
            SubMerchant subMerchant = new SubMerchant();
            subMerchant.MerchantId = "2088000603999128";
            subMerchant.MerchantType = "alipay";
            model.SubMerchant = subMerchant;
            
            // 设置业务扩展参数
            ExtendParams extendParams = new ExtendParams();
            extendParams.SysServiceProviderId = "2088511833207846";
            extendParams.HbFqSellerPercent = "100";
            extendParams.HbFqNum = "3";
            extendParams.IndustryRefluxInfo = "{\"scene_code\":\"metro_tradeorder\",\"channel\":\"xxxx\",\"scene_data\":{\"asset_name\":\"ALIPAY\"}}";
            extendParams.RoyaltyFreeze = "true";
            extendParams.CardType = "S0JP0000";
            model.ExtendParams = extendParams;
            
            // 设置商户传入业务信息
            model.BusinessParams = "{\"mc_create_trade_ip\":\"127.0.0.1\"}";
            
            // 设置优惠参数
            model.PromoParams = "{\"storeIdType\":\"1\"}";
            
            // 设置请求后页面的集成方式
            model.IntegrationType = "PCWEB";
            
            // 设置请求来源地址
            model.RequestFromUrl = "https://";
            
            // 设置商户门店编号
            model.StoreId = "NJ_001";
            
            // 设置商户的原始订单号
            model.MerchantOrderNo = "20161008001";
            
            // 设置外部指定买家
            ExtUserInfo extUserInfo = new ExtUserInfo();
            extUserInfo.CertType = "IDENTITY_CARD";
            extUserInfo.CertNo = "362334768769238881";
            extUserInfo.Mobile = "16587658765";
            extUserInfo.Name = "李明";
            extUserInfo.MinAge = "18";
            extUserInfo.NeedCheckInfo = "F";
            extUserInfo.IdentityHash = "27bfcd1dee4f22c8fe8a2374af9b660419d1361b1c207e9b41a754a113f38fcc";
            model.ExtUserInfo = extUserInfo;
            
            // 设置开票信息
            InvoiceInfo invoiceInfo = new InvoiceInfo();
            InvoiceKeyInfo keyInfo = new InvoiceKeyInfo();
            keyInfo.TaxNum = "1464888883494";
            keyInfo.IsSupportInvoice = true;
            keyInfo.InvoiceMerchantName = "ABC|003";
            invoiceInfo.KeyInfo = keyInfo;
            invoiceInfo.Details = "[{\"code\":\"100294400\",\"name\":\"服饰\",\"num\":\"2\",\"sumPrice\":\"200.00\",\"taxRate\":\"6%\"}]";
            model.InvoiceInfo = invoiceInfo;
            
            request.SetBizModel(model);
            // 第三方代调用模式下请设置app_auth_token
            // request.PutOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");

            AlipayTradePagePayResponse response = alipayClient.pageExecute(request, null, "POST");
            // 如果需要返回GET请求，请使用
            // AlipayTradePagePayResponse response = alipayClient.pageExecute(request, null, "GET");
            string pageRedirectionData = response.Body;
            Console.WriteLine(pageRedirectionData);

            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;
        }
    }
}
```
:::

:::aipay-tab{key="PHP" title="PHP"}
```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/AlipayTradePagePayRequest.php';

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

// 设置商户订单号
$model['out_trade_no'] = "20150320010101001";

// 设置订单总金额
$model['total_amount'] = "88.88";

// 设置订单标题
$model['subject'] = "Iphone6 16G";

// 设置产品码
$model['product_code'] = "FAST_INSTANT_TRADE_PAY";

// 设置PC扫码支付的方式
$model['qr_pay_mode'] = "1";

// 设置商户自定义二维码宽度
$model['qrcode_width'] = 100;

// 设置订单包含的商品列表信息
$goodsDetail = array();
$goodsDetail0 = array();
$goodsDetail0['goods_name'] = "ipad";
$goodsDetail0['alipay_goods_id'] = "20010001";
$goodsDetail0['quantity'] = 1;
$goodsDetail0['price'] = "2000";
$goodsDetail0['goods_id'] = "apple-01";
$goodsDetail0['goods_category'] = "34543238";
$goodsDetail0['categories_tree'] = "124868003|126232002|126252004";
$goodsDetail0['show_url'] = "http://www.alipay.com/xxx.jpg";
$goodsDetail[] = $goodsDetail0;
$model['goods_detail'] = $goodsDetail;

// 设置订单绝对超时时间
$model['time_expire'] = "2016-12-31 10:05:01";

// 设置二级商户信息
$subMerchant = array();
$subMerchant['merchant_id'] = "2088000603999128";
$subMerchant['merchant_type'] = "alipay";
$model['sub_merchant'] = $subMerchant;

// 设置业务扩展参数
$extendParams = array();
$extendParams['sys_service_provider_id'] = "2088511833207846";
$extendParams['hb_fq_seller_percent'] = "100";
$extendParams['hb_fq_num'] = "3";
$extendParams['industry_reflux_info'] = "{\"scene_code\":\"metro_tradeorder\",\"channel\":\"xxxx\",\"scene_data\":{\"asset_name\":\"ALIPAY\"}}";
$extendParams['royalty_freeze'] = "true";
$extendParams['card_type'] = "S0JP0000";
$model['extend_params'] = $extendParams;

// 设置商户传入业务信息
$model['business_params'] = "{\"mc_create_trade_ip\":\"127.0.0.1\"}";

// 设置优惠参数
$model['promo_params'] = "{\"storeIdType\":\"1\"}";

// 设置请求后页面的集成方式
$model['integration_type'] = "PCWEB";

// 设置请求来源地址
$model['request_from_url'] = "https://";

// 设置商户门店编号
$model['store_id'] = "NJ_001";

// 设置商户的原始订单号
$model['merchant_order_no'] = "20161008001";

// 设置外部指定买家
$extUserInfo = array();
$extUserInfo['cert_type'] = "IDENTITY_CARD";
$extUserInfo['cert_no'] = "362334768769238881";
$extUserInfo['mobile'] = "16587658765";
$extUserInfo['name'] = "李明";
$extUserInfo['min_age'] = "18";
$extUserInfo['need_check_info'] = "F";
$extUserInfo['identity_hash'] = "27bfcd1dee4f22c8fe8a2374af9b660419d1361b1c207e9b41a754a113f38fcc";
$model['ext_user_info'] = $extUserInfo;

// 设置开票信息
$invoiceInfo = array();
$keyInfo = array();
$keyInfo['tax_num'] = "1464888883494";
$keyInfo['is_support_invoice'] = true;
$keyInfo['invoice_merchant_name'] = "ABC|003";
$invoiceInfo['key_info'] = $keyInfo;
$invoiceInfo['details'] = "[{\"code\":\"100294400\",\"name\":\"服饰\",\"num\":\"2\",\"sumPrice\":\"200.00\",\"taxRate\":\"6%\"}]";
$model['invoice_info'] = $invoiceInfo;

$request->setBizContent(json_encode($model,JSON_UNESCAPED_UNICODE));
// 如果是第三方代调用模式，请设置app_auth_token（应用授权令牌）
$pageRedirectionData = $alipayClient->pageExecute($request, "POST", "<-- 请填写应用授权令牌 -->");
// 如果需要返回GET请求，请使用
// $pageRedirectionData = $alipayClient->pageExecute($request, "GET");
echo $pageRedirectionData;

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;
}
```
:::

:::aipay-tab{key="Node.js" title="Node.js"}
```javascript
const { AlipaySdk } = require("alipay-sdk");

const alipaySdk = new AlipaySdk({
  appId: "<-- 请填写您的AppId，例如：2019091767145019 -->",
  privateKey: "<-- 请填写您的应用私钥，例如：MIIEvQIBADANB ... ... -->",
  alipayPublicKey: "<-- 请填写您的支付宝公钥，例如：MIIBIjANBg... -->",
  gateway: "https://openapi.alipay.com/gateway.do",
  appAuthToken: "<-- 请填写应用授权令牌 -->",
});
const result = await alipaySdk.pageExec("alipay.trade.page.pay", {
  bizContent: {
    out_trade_no: "20150320010101001",
    total_amount: "88.88",
    subject: "Iphone6+16G",
    product_code: "FAST_INSTANT_TRADE_PAY",
    qr_pay_mode: "1",
    qrcode_width: 100,
    goods_detail: [
      {
        goods_name: "ipad",
        alipay_goods_id: "20010001",
        quantity: 1,
        price: "2000",
        goods_id: "apple-01",
        goods_category: "34543238",
        categories_tree: "124868003|126232002|126252004",
        show_url: "http://www.alipay.com/xxx.jpg",
      },
    ],
    time_expire: "2016-12-31+10:05:01",
    sub_merchant: {
      merchant_id: "2088000603999128",
      merchant_type: "alipay",
    },
    extend_params: {
      sys_service_provider_id: "2088511833207846",
      hb_fq_seller_percent: "100",
      hb_fq_num: "3",
      industry_reflux_info:
        '{\\"scene_code\\":\\"metro_tradeorder\\",\\"channel\\":\\"xxxx\\",\\"scene_data\\":{\\"asset_name\\":\\"ALIPAY\\"}}',
      royalty_freeze: "true",
      card_type: "S0JP0000",
    },
    business_params: '{"mc_create_trade_ip":"127.0.0.1"}',
    promo_params: '{"storeIdType":"1"}',
    integration_type: "PCWEB",
    request_from_url: "https://",
    store_id: "NJ_001",
    merchant_order_no: "20161008001",
    ext_user_info: {
      cert_type: "IDENTITY_CARD",
      cert_no: "362334768769238881",
      mobile: "16587658765",
      name: "李明",
      min_age: "18",
      need_check_info: "F",
      identity_hash:
        "27bfcd1dee4f22c8fe8a2374af9b660419d1361b1c207e9b41a754a113f38fcc",
    },
    invoice_info: {
      key_info: {
        tax_num: "1464888883494",
        is_support_invoice: true,
        invoice_merchant_name: "ABC|003",
      },
      details:
        '[{"code":"100294400","name":"服饰","num":"2","sumPrice":"200.00","taxRate":"6%"}]',
    },
  },
});

```
:::

::::

## 公共响应参数

| 参数 | 类型 | 是否必选 | 描述 | 示例值 |
| --- | --- | --- | --- | --- |
| `code` | String | 必选 | 网关返回码，详见[文档](https://opendoc.alipay.com/common/02km9f) | `40004` |
| `msg` | String | 必选 | 网关返回码描述，详见[文档](https://opendoc.alipay.com/common/02km9f) | `Business Failed` |
| `sub_code` | String | 可选 | 业务返回码，参见具体的 API 接口文档 | `ACQ.TRADE_HAS_SUCCESS` |
| `sub_msg` | String | 可选 | 业务返回码描述，参见具体的 API 接口文档 | `交易已被支付` |
| `sign` | String | 必选 | 签名，详见[文档](https://opendoc.alipay.com/common/02kf5q) | `DZXh8eeTuAHoYE...` |


## 业务响应参数

| 参数 | 类型 | 是否必选 | 最大长度 | 描述 | 示例值 |
| --- | --- | --- | --- | --- | --- |
| `pageRedirectionData` | String | 必选 | 16384 | 用于跳转支付宝页面的信息。POST 和 GET 方法生成内容不同：使用 POST 方法执行时，结果为 HTML form 表单，在浏览器渲染即可；使用 GET 方法执行时，会得到支付宝 URL，需要打开或重定向到该 URL。建议使用 POST 方式。具体使用方法请参考[接入指南](https://opendocs.alipay.com/open/270/105899?pathHash=d57664bf)。 | 请参考响应示例 |


## 响应示例
### 正常示例
```html
<form name="punchout_form" method="post" action="https://openapi.alipay.com/gateway.do?charset=UTF-8&method=alipay.trade.page.pay&format=json&sign=ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE&version=1.0&app_id=2017060101317939&sign_type=RSA2&timestamp=2014-07-24+03%3A07%3A50">
<input type="hidden" name="biz_content" value="{&quot;time_expire&quot;:&quot;2016-12-31 10:05:01&quot;,&quot;extend_params&quot;:&quot;&quot;,&quot;query_options&quot;:&quot;[\&quot;hyb_amount\&quot;,\&quot;enterprise_pay_info\&quot;]&quot;,&quot;settle_info&quot;:&quot;&quot;,&quot;subject&quot;:&quot;Iphone6 16G&quot;,&quot;product_code&quot;:&quot;FAST_INSTANT_TRADE_PAY&quot;,&quot;body&quot;:&quot;Iphone6 16G&quot;,&quot;qr_pay_mode&quot;:&quot;1&quot;,&quot;integration_type&quot;:&quot;PCWEB&quot;,&quot;merchant_order_no&quot;:&quot;20161008001&quot;,&quot;sub_merchant&quot;:&quot;&quot;,&quot;invoice_info&quot;:&quot;&quot;,&quot;ext_user_info&quot;:&quot;&quot;,&quot;timeout_express&quot;:&quot;90m&quot;,&quot;disable_pay_channels&quot;:&quot;pcredit,moneyFund,debitCardExpress&quot;,&quot;agreement_sign_params&quot;:&quot;&quot;,&quot;royalty_info&quot;:&quot;&quot;,&quot;store_id&quot;:&quot;NJ_001&quot;,&quot;request_from_url&quot;:&quot;https://&quot;,&quot;qrcode_width&quot;:&quot;100&quot;,&quot;goods_detail&quot;:&quot;&quot;,&quot;enable_pay_channels&quot;:&quot;pcredit,moneyFund,debitCardExpress&quot;,&quot;out_trade_no&quot;:&quot;20150320010101001&quot;,&quot;total_amount&quot;:&quot;88.88&quot;,&quot;business_params&quot;:&quot;{\&quot;mc_create_trade_ip\&quot;:\&quot;127.0.0.1\&quot;}&quot;,&quot;promo_params&quot;:&quot;{\&quot;storeIdType\&quot;:\&quot;1\&quot;}&quot;}">
<input type="submit" value="立即支付" style="display:none" >
</form>
<script>document.forms[0].submit();</script>

```

## 公共错误码
[前往查看](https://opendoc.alipay.com/common/02km9f)

## 业务错误码
| **错误码** | **错误描述** | **解决方案** |
| --- | --- | --- |
| ACQ.ACCESS_FORBIDDEN | 无权限使用接口 | 未签约条码支付或者合同已到期 |
| ACQ.BUYER_BALANCE_NOT_ENOUGH | 买家余额不足 | 买家绑定新的银行卡或者支付宝余额有钱后再发起支付 |
| ACQ.BUYER_BANKCARD_BALANCE_NOT_E | 用户银行卡余额不足 | 建议买家更换支付宝进行支付或者更换其它付款方式 |
| ACQ.BUYER_ENABLE_STATUS_FORBID | 买家状态非法 | 用户联系支付宝小二[点这里](https://support.open.alipay.com/alipay/support/index.htm)，确认买家状态为什么非法 |
| ACQ.BUYER_PAYMENT_AMOUNT_DAY_LIM | 买家付款日限额超限 | 更换买家进行支付 |
| ACQ.BUYER_PAYMENT_AMOUNT_MONTH_L | 买家付款月额度超限 | 买家更换账号后，重新付款或者更换其它付款方式 |
| ACQ.BUYER_SELLER_EQUAL | 买卖家不能相同 | 更换买家重新付款 |
| ACQ.CONTEXT_INCONSISTENT | 交易信息被篡改 | 更换商家订单号后，重新发起请求 |
| ACQ.ERROR_BALANCE_PAYMENT_DISABL | 余额支付功能关闭 | 用户打开余额支付开关后，再重新进行支付 |
| ACQ.ERROR_BUYER_CERTIFY_LEVEL_LI | 买家未通过人行认证 | 用户联系支付宝小二[点这里](https://support.open.alipay.com/alipay/support/index.htm) |
| ACQ.EXIST_FORBIDDEN_WORD | 订单信息中包含违禁词 | 修改订单信息后，重新发起请求 |
| ACQ.ILLEGAL_SIGN_VALIDTY_PERIOD | 无效的签约有效期 | 更改接口中传入的签约有效期 |
| ACQ.INVALID_PARAMETER | 参数无效 | 检查请求参数，修改后重新发起请求 |
| ACQ.MERCHANT_AGREEMENT_NOT_EXIST | 商户协议不存在 | 建议商户与支付宝确认签约代扣合同 |
| ACQ.NO_PAYMENT_INSTRUMENTS_AVAIL | 没用可用的支付工具 | 更换其它付款方式 |
| ACQ.PARTNER_ERROR | 应用APP_ID填写错误 | 联系支付宝小二[点这里](https://support.open.alipay.com/alipay/support/index.htm)，确认APP_ID的状态 |
| ACQ.PAYMENT_FAIL | 支付失败 | 用户刷新条码后，重新发起请求，如果重试一次后仍未成功，更换其它方式付款 |
| ACQ.PAYMENT_REQUEST_HAS_RISK | 支付有风险 | 更换其它付款方式 |
| ACQ.RISK_MERCHANT_IP_NOT_EXIST | 当前交易未传入IP信息，创单失败，请传入IP后再发起支付 | 检查请求参数是否已经传入用户IP信息 |
| ACQ.SYSTEM_ERROR | 接口返回错误 | 请立即调用查询订单API，查询当前订单的状态，并根据订单状态决定下一步的操作，如果多次调用依然报此错误码，请联系支付宝客服。 |
| ACQ.TOTAL_FEE_EXCEED | 订单总金额不在允许范围内 | 修改订单金额再发起请求 |
| ACQ.TRADE_BUYER_NOT_MATCH | 交易买家不匹配 | 更换商家订单号后，重新发起请求 |
| ACQ.TRADE_HAS_CLOSE | 交易已经关闭 | 更换商家订单号后，重新发起请求 |
| ACQ.TRADE_HAS_SUCCESS | 交易已被支付 | 确认该笔交易信息是否为当前买家的，如果是则认为交易付款成功，如果不是则更换商家订单号后，重新发起请求 |


## 触发通知类型
| **通知类型** | **描述** | **默认开启** |
| --- | --- | --- |
| tradeStatus.TRADE_CLOSED | 交易关闭 | 0 |
| tradeStatus.TRADE_FINISHED | 交易完结 | 0 |
| tradeStatus.TRADE_SUCCESS | 支付成功 | 1 |
| tradeStatus.WAIT_BUYER_PAY | 交易创建 | 0 |


## 触发通知示例
```plain
https://www.merchant.com/receive_notify.htm?notify_type=trade_status_sync&notify_id=91722adff935e8cfa58b3aabf4dead6ibe&notify_time=2017-02-16 21:46:15&sign_type=RSA2&sign=WcO+t3D8Kg71dTlKwN7r9PzUOXeaBJwp8/FOuSxcuSkXsoVYxBpsAidprySCjHCjmaglNcjoKJQLJ28/Asl93joTW39FX6i07lXhnbPknezAlwmvPdnQuI01HZsZF9V1i6ggZjBiAd5lG8bZtTxZOJ87ub2i9GuJ3Nr/NUc9VeY=&gmt_close=null&out_trade_no=null&trade_no=null&out_channel_type=null&passback_params=null&voucher_detail_list=null&point_amount=null&buyer_pay_amount=null&invoice_amount=null&receipt_amount=null&fund_bill_list=null&merchant_app_id=2088102146225135&app_id=null&buyer_id=null&buyer_open_id=074a1CcTG1LelxKe4xQC0zgNdId0nxi95b5lsNpazWYoCo5&gmt_refund=null&gmt_payment=null&gmt_create=null&body=null&subject=null&refund_fee=null&total_amount=null&trade_status=null&seller_id=null&out_biz_no=null&buyer_logon_id=180****0062&charge_amount=8.88&charge_flags=bluesea_1&settlement_id=2018101610032004620239146945&receipt_currency_type=DC&hyb_amount=10.24&enterprise_pay_info={"invoice_amount":"28.00","is_use_enterprise_pay":"true"}&hb_fq_pay_info={"USER_INSTALL_NUM":"3"}
```

