开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
文档中心
网页&移动应用 
支付产品
当面付
app支付
手机网站支付
电脑网站支付
刷脸付
预授权支付
商家扣款
权限集列表
商家扣款(必选)
接入指南
api 列表
签约
支付
对账
相关资料
商家分账(可选)
订单码支付
私域产品
公域产品
营销产品
资金产品
会员产品
信用产品
安全产品
广告产品
其他通用产品
开发 > 服务端 > 支付产品 > 商家扣款 >  >  >  >  > 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版本”进行访问。
网站地图