## 接口说明 该接口是页面跳转接口,用于生成用户访问支付宝的跳转链接。请在服务端执行支付宝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 ```