## 接口说明
该接口是页面跳转接口,用于生成用户访问支付宝的跳转链接。请在服务端执行支付宝SDK中pageExecute方法,读取响应中的body()结果。该结果用于跳转到支付宝页面,返回到用户浏览器渲染或重定向跳转到支付宝页面。具体使用方法请参考 [接入指南](https://ideservice.alipay.com/cms/site/08ayiq)
支持用户在支付宝页面完成支付宝代扣协议的签约,目前只支持支付宝钱包H5页面场景。
## 公共请求参数
| **参数** | **类型** | **是否必选** | **最大长度** | **描述** | **示例值** |
| --- | --- | --- | --- | --- | --- |
| app_id | String | 必选 | 32 | 支付宝分配给开发者的应用ID | 2014072300007148 |
| method | String | 必选 | 128 | 接口名称 | alipay.user.agreement.page.sign |
| 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 | 必选 | 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 |
| app_auth_token | String | 可选 | 40 | 详见[应用授权概述](https://ideservice.alipay.com/cms/site/04h2nx) | |
| biz_content | String | 必选 | | 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档 | |
## 业务请求参数
收起所有属性
**personal_product_code**必选string(64)
【描述】个人签约产品码,商户和支付宝签约时确定,商户可咨询技术支持。
【示例值】GENERAL_WITHHOLDING_P
**access_params**必选AccessParams
【描述】请按当前接入的方式进行填充,且输入值必须为文档中的参数取值范围。 扫码或者短信页面签约需要拼装http的请求地址访问中间页面,钱包h5页面签约可直接拼接scheme的请求地址
**channel**必选string(20)
【描述】目前支持以下值: 1. ALIPAYAPP (钱包h5页面签约) 2. QRCODE(扫码签约) 3. QRCODEORSMS(扫码签约或者短信签约)
【示例值】ALIPAYAPP
**period_rule_params**特殊可选PeriodRuleParams
【描述】周期管控规则参数period_rule_params,在签约周期扣款产品(如CYCLE_PAY_AUTH_P)时必传,在签约其他产品时无需传入。 周期扣款产品,会按照这里传入的参数提示用户,并对发起扣款的时间、金额、次数等做相应限制。
**single_amount**必选price(32)
【描述】单次扣款最大金额single_amount是周期扣款产品必填,即每次发起扣款时限制的最大金额,单位为元。商户每次发起扣款都不允许大于此金额。
【示例值】10.99
**period_type**可选string(10000)
【描述】周期类型period_type是周期扣款产品必填,枚举值为DAY和MONTH。 DAY即扣款周期按天计,MONTH代表扣款周期按自然月。 与另一参数period组合使用确定扣款周期,例如period_type为DAY,period=30,则扣款周期为30天;period_type为MONTH,period=3,则扣款周期为3个自然月。 自然月是指,不论这个月有多少天,周期都计算到月份中的同一日期。例如1月3日到2月3日为一个自然月,1月3日到4月3日为三个自然月。注意周期类型使用MONTH的时候,计划扣款时间execute_time不允许传28日之后的日期(可以传28日),以此避免有些月份可能不存在对应日期的情况。
【枚举值】
自然日: DAY
自然月: MONTH
【示例值】DAY
**period**可选number(32)
【描述】周期数period是周期扣款产品必填。与另一参数period_type组合使用确定扣款周期,例如period_type为DAY,period=90,则扣款周期为90天。
【示例值】3
**execute_time**可选string(10000)
【描述】首次执行时间execute_time是周期扣款产品必填,即商户发起首次扣款的时间。精确到日,格式为yyyy-MM-dd 结合其他必填的扣款周期参数,会确定商户以后的扣款计划。发起扣款的时间需符合这里的扣款计划。
【示例值】2019-01-23
**total_amount**可选price(16)
【描述】总金额限制,单位为元。如果传入此参数,商户多次扣款的累计金额不允许超过此金额。
【示例值】600.00
**total_payments**可选number(8)
【描述】总扣款次数。如果传入此参数,则商户成功扣款的次数不能超过此次数限制(扣款失败不计入)。
【示例值】12
**scene_rule_params|场景化规则**可选SceneRuleParams
【描述】周期扣中场景化规则信息,例如影音会员续费、保险等场景特殊规则字段
**discount_period|优惠周期**可选string(1000)
【描述】在周期扣场景化模板中配置优惠类型为优惠期玩法时需要该参数,表示后续有多少期扣款可享受优惠,值为自然数代表周期
【示例值】1
**low_price_period|低价时长**可选string(1000)
【描述】在周期扣场景化模板中配置优惠类型为低价玩法时需要该参数,表示代扣低价期持续的时间。单位是天,该值为自然数
【示例值】2
**sign_scene**可选string(64)
【描述】协议签约场景,商户可根据 [代扣产品常见场景值](https://ideservice.alipay.com/cms/site/00agk1) 选择符合自身的行业场景。 说明:当传入商户签约号 external_agreement_no 时,本参数必填,不能为默认值 DEFAULT|DEFAULT。
【示例值】INDUSTRY|CARRENTAL
**external_agreement_no**可选string(32)
【描述】商户签约号,代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)。 格式规则:支持大写小写字母和数字,最长32位。 商户系统按需自定义传入,如果同一用户在同一产品码、同一签约场景下,签订了多份代扣协议,那么需要指定并传入该值。
【示例值】test
**third_party_type**可选string(32)
【描述】签约第三方主体类型。对于三方协议,表示当前用户和哪一类的第三方主体进行签约。 默认为PARTNER。
【枚举值】
平台商户: PARTNER
【示例值】PARTNER
**sign_validity_period**可选string(8)
【描述】当前用户签约请求的协议有效周期。 整形数字加上时间单位的协议有效期,从发起签约请求的时间开始算起。 目前支持的时间单位: 1. d:天 2. m:月 如果未传入,默认为长期有效。
【示例值】2m
**product_code**可选string(64)
【描述】销售产品码,商户签约的支付宝合同所对应的产品码。
【示例值】GENERAL_WITHHOLDING
**external_logon_id**可选string(100)
【描述】用户在商户网站的登录账号,用于在签约页面展示,如果为空,则不展示
【示例值】13852852877
**zm_auth_params**可选ZmAuthParams
【描述】芝麻授权信息,针对于信用代扣签约。json格式。
**buckle_merchant_id**必选string(64)
【描述】商户在芝麻端申请的merchantId
【示例值】268820000000414397785
**buckle_app_id**可选string(64)
【描述】商户在芝麻端申请的appId
【示例值】1001164
**prod_params**可选ProdParams
【描述】签约产品属性,json格式
**auth_biz_params**可选string(256)
【描述】预授权业务信息
【示例值】{"platform":"taobao"}
**pre_consult_id|前置收银咨询id**可选string(1000)
【描述】前置收银id,商户接入前置收银台咨询时生成
【示例值】23954234125612
**pay_operation_info|前置营销内容**可选string(10000)
【描述】前置营销信息,由商户接入前置收银台后生成,在拉起独立签约时传递
【示例值】{\\\"payOperationId\\\":\\\"20240717192716a02065e6000YNN4482\\\",\\\"head_node_sceneCode\\\":\\\"shopMiniAppPreAlipayCommon\\\",\\\"head_node_itemId\\\":\\\"24071212104015\\\"}
**promo_params**可选string(512)
【描述】签约营销参数,此值为json格式;具体的key需与营销约定
【示例值】{"key":"value"}
**sub_merchant**可选SubMerchantParams
【描述】此参数用于传递子商户信息,直付通商户二级商户发起签约时必须传入该参数。目前商户代扣、海外代扣、淘旅行信用住产品支持传入该参数(在销售方案中“是否允许自定义子商户信息”需要选是)。
**sub_merchant_id**可选string(30)
【描述】子商户的商户id
【示例值】2088123412341234
**sub_merchant_name**可选string(50)
【描述】子商户的商户名称
【示例值】滴滴出行
**sub_merchant_service_name**可选string(50)
【描述】子商户的服务名称
【示例值】滴滴出行免密支付
**sub_merchant_service_description**可选string(150)
【描述】子商户的服务描述
【示例值】免密付车费,单次最高500
**device_params**可选DeviceParams
【描述】设备信息参数,在使用设备维度签约代扣协议时,可以传这些信息
**device_id**可选string(256)
【描述】设备Id
【示例值】device12345
**device_name**可选string(128)
【描述】设备名称
【示例值】电视
**device_type**可选string(128)
【描述】设备类型
【枚举值】
VR一体机: VR_MACHINE
电视: TV
身份证: ID_CARD
更多
【示例值】TV
**identity_params**可选IdentityParams
【描述】用户实名信息参数,包含:姓名、身份证号、签约指定uid。商户传入用户实名信息参数,支付宝会对比用户在支付宝端的实名信息。
**以下参数 可选 传入**
**sign_user_id**string(32)
【描述】签约指定用户的uid,如用户登录的uid和指定的用户uid不一致则报错
新商户建议使用sign_open_id替代该字段。对于新商户,sign_user_id字段未来计划逐步回收,存量商户可继续使用。如使用sign_open_id,请确认 应用-开发配置-openid配置管理 已启用。无该配置项,可查看[openid配置申请](https://ideservice.alipay.com/cms/site/0ai9ok)。
【示例值】2088202888530893
**sign_open_id**string(128)
【描述】签约指定用户的openid 详情可查看[openid简介](https://ideservice.alipay.com/cms/site/0ai2i6)
【示例值】031_DfFvT0Ufzk1852BLPnhuSWiztu4NqbkO35ylXPow-Y6
**user_name**可选string(64)
【描述】用户姓名
【示例值】张三
**cert_no**可选string(64)
【描述】用户身份证号
【示例值】61102619921108888
**identity_hash**可选string(128)
【描述】用户实名信息hash值
【示例值】8D969EEF6ECAD3C29A3A629280E686CF0C3F5D5A86AFF3CA12020C923ADC6C92
**agreement_effect_type**可选string(30)
【描述】协议生效类型, 用于指定协议是立即生效还是等待商户通知再生效. 可空, 不填默认为立即生效.
【枚举值】
立即生效: DIRECT
商户通知生效, 需要再次调用alipay.user.agreement.sign.effect (支付宝个人协议签约生效接口)接口推进协议生效.: NOTICE
允许变更状态: ALLOW_INACTIVATE
【示例值】DIRECT
**user_age_range**可选string(40)
【描述】商户希望限制的签约用户的年龄范围,min表示可签该协议的用户年龄下限,max表示年龄上限。如{"min": "18","max": "30"}表示18=<年龄<=30的用户可以签约该协议。
【注意事项】如以普通字符串格式传值出错,请尝试以JSONObject类型传值
【示例值】{"min":"18","max":"30"}
**effect_time**可选number(86400)
【描述】签约有效时间限制,单位是秒,有效范围是0-86400,商户传入此字段会用商户传入的值否则使用支付宝侧默认值,在有效时间外进行签约,会进行安全拦截;(备注:此字段适用于需要开通安全防控的商户,且依赖商户传入生成签约时的时间戳字段timestamp)
【示例值】300
**out_risk_info|外部风控信息**可选string(10000)
【描述】商户可通过支付产品接口回传订单或外部账户相关数据(敏感数据可加密后回传),结合支付宝内部已有的数据,可以有效提升对风险交易的识别及对可信交易的保护。支付宝针对风险交易的管控包括但不限于:交易提醒、交易拦截等;针对可信账户、可信渠道、可信交易等将重点保障支付体验。
【示例值】"{\" mcCreateTradeTime \":\"2022-03-11 12:46:09\",\"extraAccountCertnoLastSix\":\"000011"\",\"mobileOperatingPlatform\":\"ios\",\"sysVersion\":\"15.4.2\",\"netWork\":\"wifi\"}","mcCreateTradeIp":"11.110.111.43"}"
## 常见请求示例
### 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.PeriodRuleParams;
import com.alipay.api.domain.AlipayUserAgreementPageSignModel;
import com.alipay.api.domain.IdentityParams;
import com.alipay.api.domain.AccessParams;
import com.alipay.api.domain.ZmAuthParams;
import com.alipay.api.request.AlipayUserAgreementPageSignRequest;
import com.alipay.api.domain.ProdParams;
import com.alipay.api.response.AlipayUserAgreementPageSignResponse;
import com.alipay.api.domain.DeviceParams;
import com.alipay.api.domain.SceneRuleParams;
import com.alipay.api.domain.SubMerchantParams;
import com.alipay.api.FileItem;
import java.util.Base64;
import java.util.ArrayList;
import java.util.List;
public class AlipayUserAgreementPageSign {
public static void main(String[] args) throws AlipayApiException {
// 初始化SDK
AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig());
// 构造请求参数以调用接口
AlipayUserAgreementPageSignRequest request = new AlipayUserAgreementPageSignRequest();
AlipayUserAgreementPageSignModel model = new AlipayUserAgreementPageSignModel();
// 设置协议签约场景
model.setSignScene("INDUSTRY|CARRENTAL");
// 设置商户签约号
model.setExternalAgreementNo("test");
// 设置签约第三方主体类型
model.setThirdPartyType("PARTNER");
// 设置当前用户签约请求的协议有效周期
model.setSignValidityPeriod("2m");
// 设置销售产品码
model.setProductCode("GENERAL_WITHHOLDING");
// 设置用户在商户网站的登录账号
model.setExternalLogonId("13852852877");
// 设置个人签约产品码
model.setPersonalProductCode("GENERAL_WITHHOLDING_P");
// 设置芝麻授权信息
ZmAuthParams zmAuthParams = new ZmAuthParams();
zmAuthParams.setBuckleAppId("1001164");
zmAuthParams.setBuckleMerchantId("268820000000414397785");
model.setZmAuthParams(zmAuthParams);
// 设置签约产品属性
ProdParams prodParams = new ProdParams();
prodParams.setPayOperationInfo("{\\\"payOperationId\\\":\\\"20240717192716a02065e6000YNN4482\\\",\\\"head_node_sceneCode\\\":\\\"shopMiniAppPreAlipayCommon\\\",\\\"head_node_itemId\\\":\\\"24071212104015\\\"}");
prodParams.setAuthBizParams("{\"platform\":\"taobao\"}");
prodParams.setPreConsultId("23954234125612");
model.setProdParams(prodParams);
// 设置签约营销参数
model.setPromoParams("{\"key\":\"value\"}");
// 设置请按当前接入的方式进行填充
AccessParams accessParams = new AccessParams();
accessParams.setChannel("ALIPAYAPP");
model.setAccessParams(accessParams);
// 设置此参数用于传递子商户信息
SubMerchantParams subMerchant = new SubMerchantParams();
subMerchant.setSubMerchantName("滴滴出行");
subMerchant.setSubMerchantServiceName("滴滴出行免密支付");
subMerchant.setSubMerchantServiceDescription("免密付车费,单次最高500");
subMerchant.setSubMerchantId("2088123412341234");
model.setSubMerchant(subMerchant);
// 设置设备信息参数
DeviceParams deviceParams = new DeviceParams();
deviceParams.setDeviceName("电视");
deviceParams.setDeviceId("device12345");
deviceParams.setDeviceType("TV");
model.setDeviceParams(deviceParams);
// 设置用户实名信息参数
IdentityParams identityParams = new IdentityParams();
identityParams.setCertNo("61102619921108888");
// uid参数未来计划废弃,存量商户可继续使用,新商户请使用openid。请根据应用-开发配置-openid配置选择支持的字段。
// identityParams.setSignUserId("2088202888530893");
identityParams.setUserName("张三");
identityParams.setSignOpenId("031_DfFvT0Ufzk1852BLPnhuSWiztu4NqbkO35ylXPow-Y6");
identityParams.setIdentityHash("8D969EEF6ECAD3C29A3A629280E686CF0C3F5D5A86AFF3CA12020C923ADC6C92");
model.setIdentityParams(identityParams);
// 设置协议生效类型
model.setAgreementEffectType("DIRECT");
// 设置商户希望限制的签约用户的年龄范围
model.setUserAgeRange("{\"min\":\"18\",\"max\":\"30\"}");
// 设置周期管控规则参数period_rule_params
PeriodRuleParams periodRuleParams = new PeriodRuleParams();
periodRuleParams.setPeriod(3L);
periodRuleParams.setTotalAmount("600.00");
periodRuleParams.setExecuteTime("2019-01-23");
periodRuleParams.setSingleAmount("10.99");
periodRuleParams.setTotalPayments(12L);
SceneRuleParams sceneRuleParams = new SceneRuleParams();
sceneRuleParams.setDiscountPeriod("1");
sceneRuleParams.setLowPricePeriod("2");
periodRuleParams.setSceneRuleParams(sceneRuleParams);
periodRuleParams.setPeriodType("DAY");
model.setPeriodRuleParams(periodRuleParams);
// 设置签约有效时间限制
model.setEffectTime(300L);
// 设置外部风控信息
model.setOutRiskInfo("\"{\" mcCreateTradeTime \":\"2022-03-11 12:46:09\",\"extraAccountCertnoLastSix\":\"000011\"\",\"mobileOperatingPlatform\":\"ios\",\"sysVersion\":\"15.4.2\",\"netWork\":\"wifi\"}\",\"mcCreateTradeIp\":\"11.110.111.43\"}\"");
request.setBizModel(model);
// 第三方代调用模式下请设置app_auth_token
// request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");
AlipayUserAgreementPageSignResponse response = alipayClient.pageExecute(request, "POST");
// 如果需要返回GET请求,请使用
// AlipayUserAgreementPageSignResponse 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;
}
}
```
### 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 AlipayUserAgreementPageSign
{
public static void Main(string[] args)
{
// 初始化SDK
IAopClient alipayClient = new DefaultAopClient(GetAlipayConfig());
// 构造请求参数以调用接口
AlipayUserAgreementPageSignRequest request = new AlipayUserAgreementPageSignRequest();
AlipayUserAgreementPageSignModel model = new AlipayUserAgreementPageSignModel();
// 设置协议签约场景
model.SignScene = "INDUSTRY|CARRENTAL";
// 设置商户签约号
model.ExternalAgreementNo = "test";
// 设置签约第三方主体类型
model.ThirdPartyType = "PARTNER";
// 设置当前用户签约请求的协议有效周期
model.SignValidityPeriod = "2m";
// 设置销售产品码
model.ProductCode = "GENERAL_WITHHOLDING";
// 设置用户在商户网站的登录账号
model.ExternalLogonId = "13852852877";
// 设置个人签约产品码
model.PersonalProductCode = "GENERAL_WITHHOLDING_P";
// 设置芝麻授权信息
ZmAuthParams zmAuthParams = new ZmAuthParams();
zmAuthParams.BuckleAppId = "1001164";
zmAuthParams.BuckleMerchantId = "268820000000414397785";
model.ZmAuthParams = zmAuthParams;
// 设置签约产品属性
ProdParams prodParams = new ProdParams();
prodParams.PayOperationInfo = "{\\\"payOperationId\\\":\\\"20240717192716a02065e6000YNN4482\\\",\\\"head_node_sceneCode\\\":\\\"shopMiniAppPreAlipayCommon\\\",\\\"head_node_itemId\\\":\\\"24071212104015\\\"}";
prodParams.AuthBizParams = "{\"platform\":\"taobao\"}";
prodParams.PreConsultId = "23954234125612";
model.ProdParams = prodParams;
// 设置签约营销参数
model.PromoParams = "{\"key\":\"value\"}";
// 设置请按当前接入的方式进行填充
AccessParams accessParams = new AccessParams();
accessParams.Channel = "ALIPAYAPP";
model.AccessParams = accessParams;
// 设置此参数用于传递子商户信息
SubMerchantParams subMerchant = new SubMerchantParams();
subMerchant.SubMerchantName = "滴滴出行";
subMerchant.SubMerchantServiceName = "滴滴出行免密支付";
subMerchant.SubMerchantServiceDescription = "免密付车费,单次最高500";
subMerchant.SubMerchantId = "2088123412341234";
model.SubMerchant = subMerchant;
// 设置设备信息参数
DeviceParams deviceParams = new DeviceParams();
deviceParams.DeviceName = "电视";
deviceParams.DeviceId = "device12345";
deviceParams.DeviceType = "TV";
model.DeviceParams = deviceParams;
// 设置用户实名信息参数
IdentityParams identityParams = new IdentityParams();
identityParams.CertNo = "61102619921108888";
// uid参数未来计划废弃,存量商户可继续使用,新商户请使用openid。请根据应用-开发配置-openid配置选择支持的字段。
// identityParams.SignUserId = "2088202888530893";
identityParams.UserName = "张三";
identityParams.SignOpenId = "031_DfFvT0Ufzk1852BLPnhuSWiztu4NqbkO35ylXPow-Y6";
identityParams.IdentityHash = "8D969EEF6ECAD3C29A3A629280E686CF0C3F5D5A86AFF3CA12020C923ADC6C92";
model.IdentityParams = identityParams;
// 设置协议生效类型
model.AgreementEffectType = "DIRECT";
// 设置商户希望限制的签约用户的年龄范围
model.UserAgeRange = "{\"min\":\"18\",\"max\":\"30\"}";
// 设置周期管控规则参数period_rule_params
PeriodRuleParams periodRuleParams = new PeriodRuleParams();
periodRuleParams.Period = 3;
periodRuleParams.TotalAmount = "600.00";
periodRuleParams.ExecuteTime = "2019-01-23";
periodRuleParams.SingleAmount = "10.99";
periodRuleParams.TotalPayments = 12;
SceneRuleParams sceneRuleParams = new SceneRuleParams();
sceneRuleParams.DiscountPeriod = "1";
sceneRuleParams.LowPricePeriod = "2";
periodRuleParams.SceneRuleParams = sceneRuleParams;
periodRuleParams.PeriodType = "DAY";
model.PeriodRuleParams = periodRuleParams;
// 设置签约有效时间限制
model.EffectTime = 300;
// 设置外部风控信息
model.OutRiskInfo = "\"{\" mcCreateTradeTime \":\"2022-03-11 12:46:09\",\"extraAccountCertnoLastSix\":\"000011\"\",\"mobileOperatingPlatform\":\"ios\",\"sysVersion\":\"15.4.2\",\"netWork\":\"wifi\"}\",\"mcCreateTradeIp\":\"11.110.111.43\"}\"";
request.SetBizModel(model);
// 第三方代调用模式下请设置app_auth_token
// request.PutOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");
AlipayUserAgreementPageSignResponse response = alipayClient.pageExecute(request, null, "POST");
// 如果需要返回GET请求,请使用
// AlipayUserAgreementPageSignResponse 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;
}
}
}
```
### PHP
```
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;
}
```
## 公共响应参数
无公共响应参数
## 业务响应参数
**pageRedirectionData|跳转页面数据**必选string(16384)
【描述】用于跳转支付宝页面的信息,POST和GET方法生成内容不同:使用POST方法执行,结果为html form表单,在浏览器渲染即可;使用GET方法会得到支付宝URL,需要打开或重定向到该URL。建议使用POST方式。具体使用方法请参考 [接入指南](https://ideservice.alipay.com/cms/site/08ayiq)
【示例值】请参考响应示例
## 响应示例
### 正常示例
```
```
## 公共错误码
[前往查看](https://ideservice.alipay.com/cms/site/02km9f)
## 业务错误码
无业务错误码
## 触发通知示例
```
https://www.merchant.com/receive_notify.htm?notify_id=91722adff935e8cfa58b3aabf4dead6ibe¬ify_time=2017-02-16 21:46:15&sign_type=RSA2&sign=WcO+t3D8Kg71dTlKwN7r9PzUOXeaBJwp8/FOuSxcuSkXsoVYxBpsAidprySCjHCjmaglNcjoKJQLJ28/Asl93joTW39FX6i07lXhnbPknezAlwmvPdnQuI01HZsZF9V1i6ggZjBiAd5lG8bZtTxZOJ87ub2i9GuJ3Nr/NUc9VeY=&app_id=2017060101317939&external_agreement_no=test&merchant_app_id=2014072300007148&invalid_time=2017-05-20 11:49:19&sign_time=2017-05-20 11:49:19&alipay_user_id=2088101143488930&status=NORMAL&forex_eligible=T&personal_product_code=GENERAL_WITHHOLDING_P&valid_time=2017-05-20 11:49:19&agreement_no=20170502000610755993&zm_open_id=268816057852461313538942792&alipay_open_id=031_DfFvT0Ufzk1852BLPnhuSWiztu4NqbkO35ylXPow-Y6&sign_scene=INDUSTRY|CARRENTAL&auth_app_id=2017060101317935&external_logon_id=13852852877&alipay_logon_id=test***ali@alipay.net¬ify_type=dut_user_sign&zm_score=700&single_quota=100&login_token=7ff7664d45c4afe8dccab8f224af9379_07&device_id=RSED235F875932&credit_auth_mode=DEDUCT_HUAZHI&specified_sort_assets=[{"tail":"(8771)","bank_card_type":"DC"}]&partner_id=2088101143488930&modify_type=HUAZHI_DEGRADE&next_deduct_time=2024-01-01
```