火星 发表于 2018-9-14 14:49:18

支付宝收单交易分账接口

alipay.trade.order.settle(统一收单交易结算接口)
[*]支持第三方代理调用
用于在线下场景交易支付后,进行结算公共参数请求地址
环境HTTPS请求地址
正式环境https://openapi.alipay.com/gateway.do
公共请求参数
参数类型是否必填最大长度描述示例值
app_idString是32支付宝分配给开发者的应用ID2014072300007148
methodString是128接口名称alipay.trade.order.settle
formatString否40仅支持JSONJSON
charsetString是10请求使用的编码格式,如utf-8,gbk,gb2312等utf-8
sign_typeString是10商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2RSA2
signString是344商户请求参数的签名串,详见签名详见示例
timestampString是19发送请求的时间,格式"yyyy-MM-dd HH:mm:ss"2014-07-24 03:07:50
versionString是3调用的接口版本,固定为:1.01.0
app_auth_tokenString否40详见应用授权概述
biz_contentString是请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档
请求参数
参数类型是否必填最大长度描述示例值
out_request_noString必选64结算请求流水号 开发者自行生成并保证唯一性20160727001
trade_noString必选64支付宝订单号2014030411001007850000672009
royalty_parametersOpenApiRoyaltyDetailInfoPojo[]必选分账明细信息
└ trans_outString可选16分账支出方账户,类型为userId,本参数为要分账的支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字。2088101126765726
└ trans_inString可选16分账收入方账户,类型为userId,本参数为要分账的支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字。2088101126708402
└ amountNumber可选9分账的金额,单位为元0.1
└ amount_percentageNumber可选3分账信息中分账百分比。取值范围为大于0,少于或等于100的整数。100
└ descString可选1000分账描述分账给2088101126708402
operator_idString可选64操作员idA0001
公共响应参数
参数类型是否必填最大长度描述示例值
codeString是-网关返回码,详见文档40004
msgString是-网关返回码描述,详见文档Business Failed
sub_codeString否-业务返回码,参见具体的API接口文档ACQ.TRADE_HAS_SUCCESS
sub_msgString否-业务返回码描述,参见具体的API接口文档交易已被支付
signString是-签名,详见文档DZXh8eeTuAHoYE3w1J+POiPhfDxOYBfUNn1lkeT/V7P4zJdyojWEa6IZs6Hz0yDW5Cp/viufUb5I0/V5WENS3OYR8zRedqo6D+fUTdLHdc+EFyCkiQhBxIzgngPdPdfp1PIS7BdhhzrsZHbRqb7o4k3Dxc+AAnFauu4V6Zdwczo=

响应参数
参数类型是否必填最大长度描述示例值
trade_noString必填64支付宝交易号2015070921001004130000127421
请求示例
[*]JAVA
[*].NET
[*]PHP
[*]HTTP请求源码

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");AlipayTradeOrderSettleRequest request = new AlipayTradeOrderSettleRequest();request.setBizContent("{" +"\"out_request_no\":\"20160727001\"," +"\"trade_no\":\"2014030411001007850000672009\"," +"      \"royalty_parameters\":[{" +"      \"trans_out\":\"2088101126765726\"," +"\"trans_in\":\"2088101126708402\"," +"\"amount\":0.1," +"\"amount_percentage\":100," +"\"desc\":\"分账给2088101126708402\"" +"      }]," +"\"operator_id\":\"A0001\"" +"}");AlipayTradeOrderSettleResponse response = alipayClient.execute(request);if(response.isSuccess()){System.out.println("调用成功");} else {System.out.println("调用失败");}


响应示例
[*]JSON 示例
[*]XML 示例

{    "alipay_trade_order_settle_response": {      "code": "10000",      "msg": "Success",      "trade_no": "2015070921001004130000127421"    },    "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"}


异常示例
[*]JSON 示例

{    "alipay_trade_order_settle_response": {      "code": "20000",      "msg": "Service Currently Unavailable",      "sub_code": "isp.unknow-error",      "sub_msg": "系统繁忙"    },    "sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"}


业务错误码公共错误码
错误码错误描述解决方案
ACQ.SYSTEM_ERROR接口返回错误请立即调用查询订单API,查询当前订单的状态,并根据订单状态决定下一步的操作
ACQ.INVALID_PARAMETER参数无效检查请求参数,修改后重新发起请求
ACQ.TRADE_NOT_EXIST交易不存在修改交易号后,重新发起请求
ACQ.TRADE_STATUS_ERROR交易状态不合法必须为交易成功状态才允许进行分账,请检查交易状态
ACQ.PARTNER_ERROR应用APP_ID填写错误请确认APP_ID的状态,如有疑问可到<a href="https://support.open.alipay.com/alipay/support/index.htm">支持中心</a>提问
ACQ.DISCORDANT_REPEAT_REQUEST请求被篡改与已有请求的请求流水相同,但明细信息不同,请检查请求参数后重新发起请求
ACQ.TRADE_SETTLE_ERROR分账处理失败检查分账明细后,重新发起请求
触发通知类型
通知类型描述默认开启
tradeStatus.TRADE_SUCCESS支付成功1

页: [1]
查看完整版本: 支付宝收单交易分账接口