开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
文档中心
网页&移动应用 
支付产品
当面付
订单码支付
app支付
手机网站支付
电脑网站支付
商家扣款
权限集列表
商家扣款(必选)
接入指南
api 列表
签约
支付
对账
相关资料
商家分账(可选)
预授权支付
刷脸付
支付 mcp 和插件服务
私域产品
公域产品
营销产品
资金产品
会员产品
信用产品
安全产品
广告产品
其他通用产品
开发 > 服务端 > 支付产品 > 商家扣款 >  >  >  >  > app支付接口2.0接口
收藏
订阅更新
我的文档
设置
接入检测
即可查看检测结果)
若有未通过的接入检测项,接口将无法调通

接口说明

该接口是 签名数据准备接口,用于生成可信签名字符串(orderstr)。可信签名串中包含业务参数及商户身份信息,可防止数据被篡改,一般用于打开支付宝客户端。请在服务端执行支付宝sdk中sdkexecute方法,读取响应中的body()结果。具体使用方法请参考 接入指南
外部商户app唤起快捷sdk传入用户支付信息及商家扣款信息,创建商家扣款支付并签约订单。

公共请求参数

参数类型是否必选最大长度描述示例值
app_idstring必选32
支付宝分配给开发者的应用id
2014072300007148
methodstring必选128
接口名称
alipay.trade.app.pay
formatstring可选40
仅支持json
json
charsetstring必选10
请求使用的编码格式,如utf-8,gbk,gb2312等
utf-8
sign_typestring必选10
商户生成签名字符串所使用的签名算法类型,目前支持rsa2和rsa,推荐使用rsa2
rsa2
signstring必选344
商户请求参数的签名串,详见签名
详见示例
timestampstring必选19
发送请求的时间,格式"yyyy-mm-dd hh:mm:ss"
2014-07-24 03:07:50
versionstring必选3
调用的接口版本,固定为:1.0
1.0
notify_urlstring可选256
支付宝服务器主动通知商户服务器里指定的页面http/https路径。
http://api.test.alipay.net/atinterface/receive_notify.htm
app_auth_tokenstring可选40
biz_contentstring必选
请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档

业务请求参数

out_trade_no必选string(64)
【描述】商户订单号。
由商家自定义,64个字符以内,仅支持字母、数字、下划线且需保证在商户端不重复。
【示例值】70501111111s001111119
total_amount必选string(9)
【描述】订单总金额。
单位为元,精确到小数点后两位,取值范围:[0.01,100000000] 。
【示例值】9.00
subject必选string(256)
【描述】订单标题。
注意:不可使用特殊字符,如 /,=,& 等。
【示例值】大乐透
product_code可选string(64)
【描述】商家和支付宝签约的产品码。
无线快捷支付产品,传入固定值:quick_msecurity_pay
【示例值】quick_msecurity_pay
time_expire可选string(32)
【描述】订单绝对超时时间。
格式为yyyy-mm-dd hh:mm:ss。
注:time_expire和timeout_express两者只需传入一个或者都不传,如果两者都传,优先使用time_expire。
【示例值】2016-12-31 10:05:00
agreement_sign_params可选signparams
【描述】签约参数。如果希望在sdk中支付并签约,需要在这里传入签约信息。
周期扣款场景 product_code 为 cycle_pay_auth 时必填。
product_code|收单产品码必选string(64)
【描述】商家和支付宝签约的产品码。 商家扣款产品传入固定值:general_withholding
【示例值】general_withholding
personal_product_code必选string(64)
【描述】个人签约产品码,商户和支付宝签约时确定。
【示例值】cycle_pay_auth_p
sign_scene必选string(64)
【描述】协议签约场景,商户和支付宝签约时确定,商户可咨询凯发app官方网站的技术支持。
【示例值】industry|digital_media
access_params必选accessparams
【描述】请按当前接入的方式进行填充,且输入值必须为文档中的参数取值范围。
channel必选string(20)
【描述】目前支持以下值:
1. alipayapp (钱包h5页面签约)
2. qrcode(扫码签约)
3. qrcodeorsms(扫码签约或者短信签约)
【示例值】alipayapp
period_rule_params必选periodruleparams
【描述】周期管控规则参数period_rule_params, 商家扣款产品,会按照这里传入的参数提示用户,并对发起扣款的时间、金额、次数等做相应限制。
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
single_amount必选price(32)
【描述】单次扣款最大金额single_amount是周期扣款产品必填,即每次发起扣款时限制的最大金额,单位为元。商户每次发起扣款都不允许大于此金额。
【示例值】10.99
total_amount可选price(16)
【描述】总金额限制,单位为元。如果传入此参数,商户多次扣款的累计金额不允许超过此金额。
【示例值】600
total_payments可选number(8)
【描述】总扣款次数。如果传入此参数,则商户成功扣款的次数不能超过此次数限制(扣款失败不计入)。
【示例值】12
effect_time|签约请求有效时间可选string(10)
【描述】设置签约请求的有效时间,单位为秒。如传入600,商户发起签约请求到用户进入支付宝签约页面的时间差不能超过10分钟。
【示例值】600
external_agreement_no可选string(32)
【描述】商户签约号,代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)。 格式规则:支持大写小写字母和数字,最长32位。 商户系统按需传入,如果同一用户在同一产品码、同一签约场景下,签订了多份代扣协议,那么需要指定并传入该值。
【示例值】test20190701
external_logon_id可选string(100)
【描述】用户在商户网站的登录账号,用于在签约页面展示,如果为空,则不展示
【示例值】13888888888
sign_notify_url可选string(3000)
【描述】签约成功后商户用于接收异步通知的地址。如果不传入,签约与支付的异步通知都会发到外层notify_url参数传入的地址;如果外层也未传入,签约与支付的异步通知都会发到商户appid配置的网关地址。
【示例值】http://www.merchant.com/receivesignnotify
常见请求示例
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.request.alipaytradeapppayrequest;
import com.alipay.api.domain.signparams;
import com.alipay.api.domain.periodruleparams;
import com.alipay.api.domain.accessparams;
import com.alipay.api.domain.alipaytradeapppaymodel;
import com.alipay.api.response.alipaytradeapppayresponse;
import com.alipay.api.fileitem;
import java.util.base64;
import java.util.arraylist;
import java.util.list;
public class alipaytradeapppay {
    public static void main(string[] args) throws alipayapiexception {
        // 初始化sdk
        alipayclient alipayclient = new defaultalipayclient(getalipayconfig());
        // 构造请求参数以调用接口
        alipaytradeapppayrequest request = new alipaytradeapppayrequest();
        alipaytradeapppaymodel model = new alipaytradeapppaymodel();
        
        // 设置商户订单号
        model.setouttradeno("70501111111s001111119");
        
        // 设置订单总金额
        model.settotalamount("9.00");
        
        // 设置订单标题
        model.setsubject("大乐透");
        
        // 设置产品码
        model.setproductcode("quick_msecurity_pay");
        
        // 设置订单绝对超时时间
        model.settimeexpire("2016-12-31 10:05:00");
        
        // 设置签约参数
        signparams agreementsignparams = new signparams();
        accessparams accessparams = new accessparams();
        accessparams.setchannel("alipayapp");
        agreementsignparams.setaccessparams(accessparams);
        periodruleparams periodruleparams = new periodruleparams();
        periodruleparams.setperiod(3l);
        periodruleparams.settotalamount("600");
        periodruleparams.setexecutetime("2019-01-23");
        periodruleparams.setsingleamount("10.99");
        periodruleparams.settotalpayments(12l);
        periodruleparams.setperiodtype("day");
        agreementsignparams.setperiodruleparams(periodruleparams);
        agreementsignparams.setsignnotifyurl("http://www.merchant.com/receivesignnotify");
        agreementsignparams.setexternallogonid("13888888888");
        agreementsignparams.setpersonalproductcode("cycle_pay_auth_p");
        agreementsignparams.setexternalagreementno("test20190701");
        agreementsignparams.setproductcode("general_withholding");
        agreementsignparams.setsignscene("industry|digital_media");
        agreementsignparams.seteffecttime("600");
        model.setagreementsignparams(agreementsignparams);
        
        request.setbizmodel(model);
        // 第三方代调用模式下请设置app_auth_token
        // request.putothertextparam("app_auth_token", "<-- 请填写应用授权令牌 -->");
        alipaytradeapppayresponse response = alipayclient.sdkexecute(request);
        string orderstr = response.getbody();
        system.out.println(orderstr);
        if (response.issuccess()) {
            system.out.println("调用成功");
        } else {
            system.out.println("调用失败");
            // sdk版本是"4.38.0.all"及以上,可以参考下面的示例获取诊断链接
            // string diagnosisurl = diagnosisutils.getdiagnosis;
            // 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;
    }
}
说明:本示例仅供参考。

公共响应参数

无公共响应参数

业务响应参数

orderstr|签名字符串必选string(16384)
【描述】获取签名后的业务数据具体使用方法请参考 接入指南
【示例值】请参考响应示例
响应示例
app_id=2017060101317939&biz_content={"time_expire%22:%222016-12-31 10:05:00%22,"extend_params%22:%22%22,"query_options%22:%22[\"hyb_amount\%22,\"enterprise_pay_info\%22]%22,"subject%22:%22大�%90�%80�%22,"product_code%22:"quick_msecurity_pay%22,"body%22:"iphone6 16g%22,"passback_params%22:"merchantbiztype%3d3c%26merchantbizno%3d2016010101111%22,"specified_channel%22:"pcredit%22,"goods_detail%22:%22%22,"merchant_order_no%22:%2220161008001%22,"enable_pay_channels%22:"pcredit,moneyfund,debitcardexpress%22,"out_trade_no%22:"70501111111s001111119%22,"ext_user_info%22:%22%22,"total_amount%22:%229.00%22,"timeout_express%22:"90m%22,"disable_pay_channels%22:"pcredit,moneyfund,debitcardexpress%22,"agreement_sign_params%22:%22%22}&charset=utf-8&format=json&method=alipay.trade.app.pay&sign=eritjkeijkjhkkkkkkkhjereeeeeeeeeee&sign_type=rsa2×tamp=2014-07-24 03:07:50&version=1.0
说明:本示例仅供参考。

公共错误码

业务错误码

错误码错误描述凯发app官方网站的解决方案
acq.access_forbidden无权限使用接口
联系支付宝小二签约
acq.buyer_enable_status_forbid买家状态非法
用户联系支付宝小二,确认买家状态为什么非法
acq.buyer_seller_equal买卖家不能相同
更换买家重新付款
acq.context_inconsistent交易信息被篡改
确认该笔交易信息是否为当前买家的已存订单,如果是则认为本次请求参数与已存交易不一致,如果不是则更换商家订单号后,重新发起请求
acq.exist_forbidden_word订单信息中包含违禁词
修改订单信息后,重新发起请求
acq.invalid_parameter参数无效
若存在参数无效具体错误信息描述,请参考描述检查请求参数后,重新发起
acq.partner_error应用app_id填写错误
联系支付宝小二,确认app_id的状态
acq.risk_merchant_ip_not_exist当前交易未传入ip信息,创单失败,请传入ip后再发起支付
检查请求参数是否已经传入用户ip信息
acq.seller_been_blocked商家账号被冻结
联系支付宝小二,解冻账号
acq.system_error接口返回错误
请立即调用查询订单api,查询当前订单的状态,并根据订单状态决定下一步的操作
acq.total_fee_exceed订单总金额不在允许范围内
修改订单金额再发起请求
acq.trade_buyer_not_match交易买家不匹配
该笔交易已经在支付宝端创建,但请求买家与已存交易中的买家不一致。请商户确认本次请求是否与已存交易有关,若为同一笔交易,则只能用原始买家付款,若无关更换商家订单号后,重新发起请求
acq.trade_has_close交易已经关闭
确认该笔交易信息是否为当前买家的已存订单,如果是则认为交易已经关闭,如果不是则更换商家订单号后,重新发起请求
acq.trade_has_success交易已被支付
确认该笔交易信息是否为当前买家的,如果是则认为交易付款成功,如果不是则更换商家订单号后,重新发起请求

触发通知类型

通知类型描述默认开启
tradestatus.trade_closed交易关闭1
tradestatus.trade_finished交易完结1
tradestatus.trade_success支付成功1
tradestatus.wait_buyer_pay交易创建0

触发通知示例

https://www.merchant.com/receive_notify.htm?notify_type=trade_status_sync¬ify_id=91722adff935e8cfa58b3aabf4dead6ibe¬ify_time=2017-02-16 21:46:15&sign_type=rsa2&sign=wco t3d8kg71dtlkwn7r9pzuoxeabjwp8/fousxcuskxsovyxbpsaidpryscjhcjmaglncjokjqlj28/asl93jotw39fx6i07lxhnbpknezalwmvpdnqui01hzszf9v1i6ggzjbiad5lg8bzttxzoj87ub2i9guj3nr/nuc9vey=&receipt_amount=null&invoice_amount=null&buyer_pay_amount=null&point_amount=null&voucher_detail_list=null&buyer_logon_id=null&seller_email=null&out_biz_no=null&passback_params=null&out_channel_type=null&trade_no=null&app_id=null&out_trade_no=null&seller_id=null&trade_status=null&total_amount=null&refund_fee=null&subject=null&body=null&gmt_create=null&gmt_payment=null&gmt_refund=null&gmt_close=null&buyer_id=null&fund_bill_list=[{"amount":"50.00","fundchannel":"alipayaccount"}]¬ify_action_type=paybyaccountaction/closetradeaction/reverseaction/finishfpaction/confirmdisburseaction/financingreceiptaction¤t_seller_received_amount=88.88&seller_received_total_amount=88.88&total_from_seller_fee=88.88&ff_current_period=1&discount_amount=88.88&charge_amount=8.88&charge_flags=bluesea_1&settlement_id=2018101610032004620239146945&industry_sepc_detail={"registration_order_pay":{"brlx":"1","cblx":"1"}}&industry_sepc_detail_acc={"registration_order_pay":{"brlx":"1","cblx":"1"}}&industry_sepc_detail_gov={"registration_order_pay":{"brlx":"1","cblx":"1"}}&discount_goods_detail="[{\"goodsid\":\"standard1026181538\",\"goodsname\":\"雪碧\",\"discountamount\":\"10.00\"}]"&mdiscount_amount=88.88&hb_fq_pay_info={"user_install_num":"3"}&receipt_currency_type=dc&enterprise_pay_info={"invoice_amount":"28.00","is_use_enterprise_pay":"true"}&hyb_amount=10.24&charge_info_list=[{"charge_fee":"0.01","original_charge_fee":"0.02","switch_fee_rate":"0.03","is_rating_on_trade_receiver":"y","is_rating_on_switch":"y"}]&medical_insurance_info={"medicarecardtype":"1","medicarecardholderhiddenname":"**专"}&credit_pay_mode=creditadvancev2&buyer_charge_amt=1.00&fulfillment_amount=10.24&cashier_type=app&refund_voucher_detail_list=[{"amount":"0.10","merchantcontribute":"0.00","name":"工具立减_固定金额","othercontribute":"0.10","type":"discount","voucherid":"20241207000730027708000crgzp"}]
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
为开发者能享受更简单的协议处理逻辑、更丰富的开源工具配套、更低的接口响应时延,支付宝开放平台推出符合oas3.0规范的,助力开发体验。新版本文档请点击“查看v3版本”进行访问。
网站地图