支付宝预授权完成-服务商
大约 19 分钟
支付宝预授权完成-服务商
支付宝预授权完成
服务ID | zjrcuoip.pay.uas.code.complete |
---|---|
VERSION | 1.0.0 |
服务详细描述
由开放平台接入的商户系统发起的支付宝预授权完成支付服务。
注:参数中的必填要求:M为必填项,O为非必填项,C为条件选填项。
示例代码
UasPayCodeCompleteDemoOp.java
/**
* 支付宝预授权完成-服务商
*
* @author
*/
@Service
public class UasPayCodeCompleteDemoOp {
@SuppressWarnings({ "rawtypes", "unchecked" })
public static void execute() {
// 1.获取通讯连接对象
INetTools netTools = NetToolsHttpFactory.getHttpInstance();
// 2.生成公共请求报文对象
OipReqBean oipReqBean = new OipReqBean();
// 设置应用id
oipReqBean.setAppId("应用id");
// 设置开发者id
oipReqBean.setDlpId("开发者id");
// 设置产品id
oipReqBean.setProdId("产品id");
// 设置api方法名
oipReqBean.setMethod("zjrcuoip.pay.uas.code.complete");
// 设置api版本
oipReqBean.setVersion("1.0.0");
// 设置时间戳
SimpleDateFormat sfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
oipReqBean.setTimestamp(sfs.format(new Date()));
// 3.生成请求配置对象,配置请求地址/url等信息
NetReqConfBean netReqConfBean = new NetReqConfBean();
// 应用私钥
netReqConfBean.setAppPrivateKey("应用私钥");
// 请求地址
netReqConfBean.setNetUrl("请求地址");
// 开发者公钥
netReqConfBean.setPublicKey("开发者公钥");
// 设置业务报文
Date d=new Date();
SimpleDateFormat sf=new SimpleDateFormat("yyyyMMddHHmmss");
//以map接收所有参数生成业务报文,主要是必输项,具体参考接口文档
Map map =new HashMap();
map.put("输入项必输字段", "字段值");
String bizContent = JSON.toJSONString(map);
// 生成业务报文json对象
oipReqBean.setBizContent(bizContent);
// 通讯获取报文对象
OipRspBean oipRspBean = netTools.execute(oipReqBean, netReqConfBean);
// 响应成功
if (oipRspBean.isSuccess()) {
String bizJson = oipRspBean.getBizContent();
if (StringUtils.isNotBlank(bizJson)) {
Map bizData = JSON.parseObject(bizJson, Map.class);
System.out.println(bizData);
}
}
}
}
公共报文
业务输入项
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | mchSeq | 商户识别号 | M | String | 32 | |
2 | txId | 商户订单号 | M | String | 32 | 32个字符以内、只能包含字母、数字、下划线,需保证在商户端不重复。 |
3 | orglTxId | 原商户订单号 | M(三选一) | String | 32 | orglTxId为原预授权交易的商户订单号 |
4 | orglMsgId | 原交易流水号 | M(三选一) | String | 32 | orglMsgId为原预授权交易由收单系统生成的流水号 |
5 | orglTradeNo | 原支付流水号 | M(三选一) | String | 32 | orglTradeNo为原预授权交易由支付系统生成的流水号 |
6 | conScene | 消费场景 | M | String | 2 | 34-支付宝预授权完成-服务商 |
7 | txTp | 交易类型 | M | String | 2 | 21-预授权完成 |
8 | txDtTm | 交易时间 | M | Datetime | 14 | 交易发起时间,格式yyyyMMddHHmmss |
9 | validTime | 订单失效时间 | O | String | 4 | 订单失效时间,数值为整数,单位分,不得超过45分钟。 |
10 | amt | 交易金额 | M | String | 15 | 单位为元,精确到小数点后两位。 |
11 | ccy | 交易币种 | O | String | 3 | 默认CNY-人民币,指amt的币种 |
12 | disctAmt | 可打折金额 | O | String | 15 | 参与优惠计算的金额,单位为元,精确到小数点后两位。如果该值未传入,但传入了<交易金额>和<不可打折金额>,则该值默认为<交易金额>-<不可打折金额> |
13 | undisctAmt | 不可打折金额 | O | String | 15 | 不参与优惠计算的金额,单位为元,精确到小数点后两位。如果该值未传入,但传入了<交易金额>和<可打折金额>,则该值默认为<交易金额>-<可打折金额> |
14 | buyerId | 买家的支付宝用户id | M | String | 28 | 预授权阶段返回的buyerId |
15 | authNo | 预授权号 | O | String | 64 | 预授权转交易请求中传入,适用于预授权转交易业务使用,目前只支持 FUND_TRADE_FAST_PAY(资金订单即时到帐交易)、境外预授权产品(OVERSEAS_AUTH_PAY)两个产品 |
16 | prdDetail | 商品信息 | O | Map | 订单包含的商品信息,详细字段见prdDetail说明。 | |
17 | sceneCode | 场景码 | O | String | 10 | 预授权刷脸场景取值为HOTEL,其他不需填写 |
18 | storeId | 商户门店编号 | O | String | 32 | |
19 | aliStoreId | 支付宝店铺编号 | O | String | 32 | 支付宝的店铺编号 |
20 | operatorId | 商户操作员编号 | O | String | 28 | |
21 | areaCd | 区域信息 | M | String | 6 | 商户所在地地区信息,6位定长,精确到区县编码维度,与国家统计局一致。注:取值范围可参考《省市区结构说明》 |
22 | termId | 终端编号 | M | String | 32 | 商户终端设备号 |
23 | termInfo | 终端信息 | M | Map | 商户侧受理终端信息。详见termInfo说明 | |
24 | termPrms | 商户传入终端设备 | O | String | 2048 | 商户传入终端设备 |
25 | authConfMd | 预授权确认模式 | M | String | 32 | COMPLETE-转交易支付完成结束预授权,解冻剩余金额 |
26 | advPayTp | 支付模式类型 | O | String | 20 | ENJOY_PAY_V2-允许走先享后付2.0垫资 |
27 | agmtParams | 代扣协议信息 | O | Map | 代扣业务需要传入协议相关信息,详细字段见agmtParams说明。 | |
28 | promParams | 优惠明细参数 | O | Map | 通过此属性补充营销参数,详细字段见promParams说明。 | |
29 | bizParams | 业务信息 | O | Map | 商户传入业务信息,具体值要和支付宝约定,应用于安全、营销等参数直传场景 | |
30 | extendParams | 业务扩展参数 | O | Map | 详细字段见extendParams说明。 | |
31 | notifyUrl | 通知地址 | O | String | 128 | 商户接收异步通知的地址 |
32 | remark | 备注 | O | String | 256 | |
33 | attach | 附加数据 | O | String | 78 | 附加数据,在通知和查询接口中原样返回,该字段主要用于携带自定义数据。如包含特殊字符需做Base64编码 |
identity说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | name | 姓名 | O | String | 32 | |
2 | mobile | 手机号 | O | String | 20 | |
3 | certType | 证件类型 | O | String | 3 | 101-居民身份证,102-户口本,103-护照,104-军官证,105-士兵证 |
4 | certNo | 证件号 | O | String | 64 | |
5 | minAge | 最小年龄 | O | String | 3 | 允许的最小买家年龄 |
prdDetail说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | costPrice | 订单原价 | O | String | 9 | 1.商户侧一张小票订单可能被分多次支付,订单原价用于记录整张小票的交易金额。 2.当订单原价与支付金额不相等,则不享受优惠。 3.该字段主要用于防止同一张小票分多次支付,以享受多次优惠的情况,正常支付订单不必上传此参数。 单位为元,精确到小数点后两位 |
2 | receiptId | 商品小票ID | O | String | 32 | 商家小票ID |
3 | goodsDetail | 单品列表 | M | List | 单品信息,详细字段见goodsDetail说明。 |
goodsDetail说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | goodsId | 商品编号 | M | String | 32 | 商品编号 |
2 | tnlGoodsId | 商品编码 | O | String | 32 | 通道侧商品编码 |
3 | goodsName | 商品名称 | M | String | 256 | 商品的实际名称 |
4 | quantity | 商品数量 | M | String | 10 | 用户购买的数量 |
5 | price | 商品单价 | M | String | 15 | 单位为元,精确到小数点后两位 |
6 | goodsCgy | 商品类目 | O | String | 24 | |
7 | cgyTree | 商品类目树 | O | String | 128 | 从商品类目根节点到叶子节点的类目id组成,类目id值使用|分割 |
8 | body | 商品描述信息 | O | String | 1000 | 商品描述信息 |
9 | showUrl | 商品展示地址 | O | String | 400 | 商品展示地址 |
termInfo说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | location | 终端实时经纬度信息 | O | String | 32 | 受理终端设备实时经纬度信息,格式为纬度/经度,+表示北纬、东经,-表示南纬、西经。 |
2 | ntwLcs | 终端入网认证编号 | O | String | 5 | 银行卡受理终端产品入网认证编号。该编号由“中国银联标识产品企业资质认证办公室”为通过入网认证的终端进行分配。 格式:5位字符,例如P3100 |
3 | devTp | 商户端设备类型 | M | String | 2 | 终端设备类型,受理方可参考终端注册时的设备类型填写,取值如下: 01:自动柜员机(含ATM和CDM)和多媒体自助终端 02:传统POS 03:mPOS 04:智能POS 05:II型固定电话 06:云闪付终端; 07:保留使用; 08:手机POS; 09:刷脸付终端; 10:条码支付受理终端; 11:条码支付辅助受理终端; 12:行业终端(公交、地址用于指定行业的终端); 13:MIS终端 |
4 | serlNm | 终端序列号 | C | String | 50 | 终端设备的硬件序列号,商户端设备类型(devTp)填写为 02、03、04、05、06、08、09 或 10时,必须填写终端序列号。 |
5 | devId | 终端设备号 | M | String | 8 | 终端设备号,收单机构为商户终端分配的唯一编号。 |
6 | enRdNm | 加密随机因子 | O | String | 10 | 仅在被扫支付类交易报文中出现:若付款码为19位数字,则取后6位; 若付款码为EMV二维码,则取其tag57的卡号/token号的后6位。 |
7 | scrtTxt | 密文数据 | O | String | 16 | 仅在被扫支付类交易报文中出现:64bit的密文数据,对终端硬件序列号和加密随机因子加密后的结果。本子域取值为:64bit密文数据进行base64编码后的结果。 |
8 | appVer | 应用程序版本号 | O | String | 8 | 终端应用程序的版本号。应用程序变更应保证版本号不重复。当长度不足时,右补空格。 |
9 | devIp | 商户端设备IP | C | String | 40 | 商户端终端设备IP地址。注:如经、纬度信息未上送,该字段必送。 |
10 | mblCtryCd | 移动国家代码 | O | String | 3 | 基站信息,由国际电联(ITU)统一分配的移动国家代码(MCC) |
11 | mblNtNm | 移动网络号码 | O | String | 2 | 中国为460 |
12 | iccId | ICCID | O | String | 20 | 基站信息,由国际电联(ITU)统一分配的移动网络号码(MNC) |
13 | lctionCd1 | 位置区域码1 | O | String | 4 | 移动:00、02、04、07; 联通:01、06、09; 电信:03、05、11 |
14 | lbsNum1 | 基站编号1 | O | String | 12 | SIM卡卡号 |
15 | lbsSgnl1 | 基站信号1 | O | String | 4 | LAC(移动、联通),16进制 |
16 | lctionCd2 | 位置区域码2 | O | String | 4 | CID(移动、联通),16进制 |
17 | lbsNum2 | 基站编号2 | O | String | 12 | SIG(移动、联通),16进制 |
18 | lbsSgnl2 | 基站信号2 | O | String | 4 | LAC(移动、联通),16进制 |
19 | lctionCd3 | 位置区域码3 | O | String | 4 | CID(移动、联通),16进制 |
20 | lbsNum3 | 基站编号3 | O | String | 12 | SIG(移动、联通),16进制 |
21 | lbsSgnl3 | 基站信号3 | O | String | 4 | LAC(移动、联通),16进制 |
22 | telSysId | 电信系统识别码 | O | String | 4 | CID(移动、联通),16进制 |
23 | telNetId | 电信网络识别码 | O | String | 4 | SIG(移动、联通),16进制 |
24 | telLbs | 电信基站 | O | String | 4 | SID(电信),电信系统识别码,每个地级市只有一个SID |
25 | telLbsSgnl | 电信基站信号 | O | String | 4 | NID(电信),电信网络识别码,由电信各地级分公司分配。每个地级市可能有1到3个NID |
agmtParams说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | agreementNo | 协议号 | M | String | 64 | 用以唯一标识用户签约记录的编号(用户签约成功后的协议号)。 |
2 | authConfirmNo | 鉴权确认码 | O | String | 10 | 鉴权确认码,在需要做支付鉴权校验时,该参数不能为空。 |
3 | applyToken | 鉴权token | O | String | 64 | 鉴权申请token,在需要做支付鉴权校验时,该参数不能为空。 |
promParams详细信息说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | actualOrderTime | 实际交易时间 | O | String | 32 | 存在延迟扣款这一类的场景,用这个时间表明用户发生交易的时间,比如说在公交地铁场景,用户刷码出站的时间,和商户上送交易的时间是不一样的。 |
extendParams说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | sysServiceProviderId | 系统商编号 | O | String | 64 | 该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的PID |
2 | hbFqNum | 分期数 | O | String | 32 | 使用分期产品要进行的分期数 |
3 | hbFqSellerPercent | 手续费比例百分值 | O | String | 3 | 使用分期产品需要卖家承担的手续费比例的百分值,传入100代表100% |
4 | industryRefluxInfo | 行业数据回流信息 | O | String | 512 | {"scene_code":"me tro_tradeorder","ch annel":"xxxx","sce ne_data":{"asset_na me":"ALIPAY"}} |
5 | cardType | 卡类型 | O | String | 32 |
业务输出项
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | bizSts | 交易状态 | M | String | 4 | 指消费交易结果。01-交易处理中,02-交易成功,03-交易失败 |
2 | bizStsDesp | 交易状态描述 | M | String | 255 | 如:交易成功 |
3 | rjctRsnCd | 错误码 | O | String | 32 | |
4 | rjctRsn | 错误描述 | O | String | 255 |
以下字段在bizSts为01-交易处理中时有返回:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | msgId | 交易流水号 | M | String | 32 | 收单交易系统生成的流水号 |
2 | txId | 商户订单号 | M | String | 32 | 请求的txId原样返回 |
以下字段在bizSts为02-交易成功时有返回:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | msgId | 交易流水号 | M | String | 32 | 收单交易系统生成的流水号 |
2 | txId | 商户订单号 | O | String | 32 | 请求的txId原样返回 |
3 | mrchOrderNo | 商户原始订单号 | O | String | 64 | |
4 | tradeNo | 支付流水号 | M | String | 32 | 支付系统生成的唯一流水号 |
5 | tnltxId | 通道流水号 | O | String | 64 | 非丰收互联支付,且交易成功时返回 |
6 | mrchNm | 特约商户简称 | M | String | 128 | |
7 | subOpenId | 用户子标识 | O | String | 128 | 支付宝支付时为买家在支付宝的用户ID |
8 | tradeDate | 交易日期 | M | Date | 8 | 格式为yyyyMMdd,对账用。 |
9 | timeEnd | 交易完成时间 | M | Datetime | 14 | 支付成功时有值,格式为yyyyMMddHHmmss。 |
10 | tunnel | 交易通道 | M | String | 10 | WEIXIN-微信,ALIPAY-支付宝 |
11 | txAmt | 交易金额 | M | String | 15 | 单位元,精确到小数点后两位。 |
12 | ccy | 标价币种 | O | String | 3 | 默认CNY-人民币。指txAmt的币种。 |
13 | ftPayAmt | 用户支付金额 | O | String | 15 | 买家付款的金额。单位为元,精确到小数点后两位 |
14 | ftPayccy | 用户支付币种 | O | String | 3 | 默认CNY-人民币。指ftPayAmt的币种。 |
15 | payCcyAmt | 支付币种订单金额 | O | String | 15 | 单位为元,精确到小数点后两位 |
16 | settleCcyAmt | 结算币种订单金额 | O | String | 15 | 单位为元,精确到小数点后两位 |
17 | settleCcy | 结算币种 | O | String | 3 | 商户指定的结算币种,目前仅支持人民币:CNY。 |
18 | settleTxRate | 结算币种兑换标价币种汇率 | O | String | 32 | |
19 | transPayRate | 标价币种兑换支付币种汇率 | O | String | 32 | |
20 | settleAmt | 应结金额 | M | String | 15 | 单位为元,精确到小数点后两位 |
21 | promTtlAmt | 优惠金额 | O | String | 15 | 优惠金额<=交易金额,交易金额-优惠金额=用户实付金额。单位为元,精确到小数点后两位 |
22 | storeName | 商户门店名称 | O | String | 512 | 发生支付交易的商户门店名称。 |
23 | buyerUserType | 买家用户类型 | O | String | 18 | CORPORATE-企业用户;PRIVATE-个人用户。 |
24 | buyerUserName | 买家名称 | O | String | 128 | 买家为个人用户时为买家姓名,买家为企业用户时为企业名称。 |
25 | buyerLogonId | 买家账号 | M | String | 100 | 买家支付宝账号 |
26 | pointAmt | 集分宝付款金额 | O | String | 15 | 使用集分宝付款的金额,单位为元,精确到小数点后两位 |
27 | invoiceAmt | 发票金额 | O | String | 15 | 用户开具发票的金额,单位为元,精确到小数点后两位 |
28 | mdiscountAmt | 商家优惠金额 | O | String | 15 | 单位为元,精确到小数点后两位 |
29 | discountAmt | 平台优惠金额 | O | String | 15 | 单位为元,精确到小数点后两位 |
30 | cardBalance | 支付宝卡余额 | O | String | 15 | 单位为元,精确到小数点后两位 |
31 | advAmt | 先享后付2.0垫资金额 | O | String | 15 | 不返回表示没有走垫资,非空表示垫资支付的金额,单位为元,精确到小数点后两位 |
32 | asyncPayMd | 异步支付模式 | O | String | 20 | 异步支付模式,先享后付业务会返回该参数,目前有三种值: ASYNC_DELAY_PAY-异步延时付款; ASYNC_REALTIME_PAY-异步准实时付款; SYNC_DIRECT_PAY-同步直接扣款; |
33 | authPayMd | 预授权支付模式 | O | String | 64 | 预授权支付模式,该参数仅在信用预授权支付场景下返回。信用预授权支付:CREDIT_PREAUTH_PAY |
34 | fundBillList | 支付资金渠道 | M | List | 详见fundBillList说明。 | |
35 | goodsDetail | 单品优惠信息 | O | String | 1024 | 本次交易支付所使用的单品券优惠的商品优惠信息: [{"goods_id":"STANDARD1026181538","goods_name":"雪碧 ","discount_amount": "100.00","voucher_id":"2015102600073002039000002D5O"}] |
36 | aliProminfo | 优惠详情 | O | List | 详见alipromInfo说明。 | |
37 | riskInfo | 风险控制信息 | O | String |
fundBillList说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | fundChannel | 交易使用的资金渠道 | M | String | 32 | 交易使用的资金渠道。 COUPON-支付宝红包 ALIPAYACCOUNT-支付宝账户 POINT-集分宝 DISCOUNT-折扣券 PCARD-预付卡 MCARD-商家储值卡 MDISCOUNT-商户优惠券 MCOUPON-商户红包 BANKCARD-银行卡 |
2 | bankCode | 银行卡支付时的银行代码 | O | String | 10 | 如CEB |
3 | amount | 使用金额 | M | Price | 32 | 该支付方式所支付的金额,单位为元,精确到小数点后两位 |
4 | realAmount | 渠道实际付款金额 | O | Price | 11 | 单位为元,精确到小数点后两位 |
5 | fundType | 渠道所使用的资金类型 | O | String | 32 | 渠道所使用的资金类型,目前只在资金渠道(fund_channel)是银行卡渠道(BANKCARD)的情况下才返回该信息。 DEBIT_CARD-借记卡 CREDIT_CARD-信用卡 MIXED_CARD-借贷合一卡 |
aliPromInfo说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | id | 券ID | M | String | 32 | 券id |
2 | name | 优惠名称 | M | String | 64 | 券名称 |
3 | type | 优惠类型 | M | String | 32 | 当前有三种类型: ALIPAY_FIX_VOUCHER--全场代金券 ALIPAY_DISCOUNT_VOUCHER--折扣券 ALIPAY_ITEM_VOUCHER--单品优惠 注:不排除将来新增其他类型的可能,商家接入时注意兼容性避免硬编码。 |
4 | amount | 优惠券面额 | M | Price | 8 | 用户享受优惠的金额。单位为元,精确到小数点后两位 |
5 | merchantContribute | 商家出资 | O | Price | 8 | 商家出资(特指发起交易的商家出资金额)。单位为元,精确到小数点后两位 |
6 | otherContribute | 其他出资方出资金额 | O | Price | 8 | 其他出资方出资金额,可能是支付宝,可能是品牌商,或者其他方,也可能是他们的一起出资。单位为元,精确到小数点后两位 |
7 | memo | 优惠券备注信息 | O | String | 256 | |
8 | templateId | 券模板id | O | String | 64 | |
9 | purchaseBuyerContribute | 用户实际付款金额 | O | Price | 8 | 如果使用的这张券是用户购买的,则该字段代表用户在购买这张券时用户实际付款的金额。单位为元,精确到小数点后两位 |
10 | purchaseMerchantContribute | 商家优惠金额 | O | Price | 8 | 如果使用的这张券是用户购买的,则该字段代表用户在购买这张券时商户优惠的金额。单位为元,精确到小数点后两位 |
11 | purchaseAntContribute | 平台优惠金额 | O | Price | 8 | 如果使用的这张券是用户购买的,则该字段代表用户在购买这张券时平台优惠的金额。单位为元,精确到小数点后两位 |
12 | otherContributeDetail | 优惠券的其他出资方明细 | O | List | 详见other_contribute_detail说明。 |
other_contributeDetail说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | contributeType | 出资方类型 | M | String | 32 | 出资方类型,如品牌商出资、支付宝平台出资等. |
2 | contributeAmount | 出资方金额 | M | Price | 8 | 单位为元,精确到小数点后两位 |
riskInfo说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | deviceIp | 绑卡设备ip | O | String | 64 | 绑卡设备(付款app)所在的公网IP,可用于定位所属区域,不是wifi连接时的局域网IP。 |
2 | deviceLocation | 设备GPS位置 | O | String | 32 | 设备(付款app)GPS位置,格式为纬度/经度,+表示北纬、东经,-表示南纬、西经。 |