支付宝预授权冻结-自研
大约 11 分钟
支付宝预授权冻结-自研
支付宝预授权冻结
服务ID | zjrcuoip.pay.uas.mch.code.freeze |
---|---|
VERSION | 1.0.0 |
服务详细描述
由开放平台接入的商户系统发起的支付宝预授权服务。
注:参数中的必填要求:M为必填项,O为非必填项,C为条件选填项。
示例代码
UasPayCodeFreezeDemoOp.java
/**
* 支付宝预授权冻结-自研
*
* @author
*/
@Service
public class UasPayCodeFreezeDemoOp {
@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.mch.code.freeze");
// 设置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 | conScene | 消费场景 | M | String | 2 | 32-支付宝预授权冻结-自研 |
3 | txTp | 交易类型 | M | String | 2 | 20-预授权冻结 |
4 | txId | 商户订单号 | M | String | 32 | 32个字符以内、只能包含字母、数字、下划线,需保证在商户端不重复。 |
5 | mrchOrderNo | 商户原始订单号 | O | String | 64 | |
6 | bizCgy | 业务类型 | M | String | 4 | A001-消费 |
7 | purpPrtry | 业务种类 | M | String | 7 | A001001-实物商品租赁 A001002-虚拟商户购买 A001003-预付类账户充值 A001004-航旅交通服务 A001005-活动票务订购 A001006-商业服务消费 A001007-生活服务消费 A001008-其他商家消费 A001009-金融服务 |
8 | productCode | 销售产品码 | M | String | 32 | 线下预授权场景下必送PRE_AUTH; 线上预授权场景下必送PRE_AUTH_ONLINE |
9 | txDtTm | 交易时间 | M | Datetime | 14 | 交易发起时间,格式yyyyMMddHHmmss |
10 | validTime | 订单有效期 | O | String | 5 | 订单失效时间,逾期将关闭交易。数值为整数,单位为分 |
11 | amt | 交易金额 | M | String | 15 | 单位为元,精确到小数点后两位。 |
12 | ccy | 交易币种 | O | String | 3 | 默认CNY-人民币,指txAmt的币种。 |
13 | subject | 订单标题 | M | String | 256 | 商品标题/交易标题/订单标题/订单关键字等。 |
14 | body | 订单描述 | O | String | 128 | 对交易或商品的描述 |
15 | limitPay | 禁用支付方式 | O | String | 128 | 禁用多个支付方式以逗号分隔,取值范围见<数据字典>。 如传入creditCard,pcredit表示禁用支付宝-信用卡和支付宝-花呗。 |
16 | enablePay | 可用支付方式 | O | String | 128 | 商户可用该参数指定用户可使用的支付渠道,本期支持商户可支持三种支付渠道,余额宝(MONEY_FUND)、花呗(PCREDIT_PAY)以及芝麻信用(CREDITZHIMA)。商户可设置一种支付渠道,也可设置多种支付渠道。 示例:[{"payChannelType":"PCREDIT_PAY"},{"payChannelType": "MONEY_FUND"}] |
17 | authCode | 授权码 | C | String | 128 | 商家使用扫码设备获取到的支付授权码。 |
18 | authCodeTp | 授权码类型 | M | String | 32 | 目前支持"bar_code"和"security_code",分别对应付款码和刷脸场景 |
19 | identity | 实名支付信息 | O | Map | 实名支付功能,详细字段见identity说明。 微信和银联支付时,支持校验证件信息、姓名。 支付宝支付时,支持校验证件信息、姓名、年龄。 丰收互联支付时,不支持校验任何信息。 | |
20 | sceneCode | 场景码 | O | String | 10 | 预授权刷脸场景取值为HOTEL,其他不需填写 |
21 | termId | 终端编号 | M | String | 32 | 商户终端设备号 |
22 | termInfo | 终端信息 | M | Map | 商户侧受理终端信息。详见termInfo说明 | |
23 | termSdkPrms | 机具管控sdk加签参数 | O | String | 500 | 机具管控sdk加签参数,参数示例 "terminal_params":"{"terminalType":"IOT","signature":"QIIAX8DqbFbNf2oe97FI1RSLAycC/tU4GVjer3bN8K4qLtAB","apdidToken":"xPA3ptuArwYc3F6Va_pjVwv7Qx7Tg5TJdrA_Jb_moYte9AqGZgEAAA==","hardToken":"","time":"1539847253","bizCode":"11000200040004000121","bizTid":"010100F01i1XyacMgpOinHerfdBw1xA9dNDocctlnqhLD8lfODr1A7Q","signedKeys":"authCode,totalAmount,apdidToken,hardToken,time,bizCode,bizTid"}" |
24 | extraParam | 资金授权业务扩展参数 | C | Map | 如需要支持信用授权,必传。 | |
25 | notifyUrl | 通知地址 | O | String | 128 | 商户接收异步通知的地址 |
26 | remark | 备注 | O | String | 256 | |
27 | 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 | 允许的最小买家年龄 |
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 |
extraParam说明:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | category | 信用类目 | C | String | 30 | 信用类目,信用预授权场景必传,具体类目信息见https://opendocs.alipay.com/open/10719 |
2 | outStoreCode | 服务点编号 | O | String | 30 | 服务点编号。将在用户端信用守护、支付信息、账单详情页展示,填入有助于用户明白相关服务使用。 |
3 | outStoreAlias | 服务点名称 | O | String | 30 | 服务点名称。将在用户端信用守护、支付信息、账单详情页展示,填入有助于用户明白相关服务使用。 |
4 | serviceId | 信用服务Id | O | String | 信用服务id,信用预授权场景必传,需要联系芝麻客服获取,https://cshall.alipay.com/enterprise/index.htm?sourceId=pc_zhima(右上角“有问题点我”进入咨询) | |
5 | creditExtInfo | 信用拓展参数 | C | 信用扩展参数。酒店行业 根据实际情况至少填写其中一个,用于信用受理台上展示,以便用户更清晰地区分出费用明细。其他行业不传这两个字段。 |
业务输出项
序号 | 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原样返回 |
3 | mrchOrderNo | 商户原始订单号 | O | String | 64 |
以下字段在bizSts为02-交易成功时有返回:
序号 | key | 中文名称 | 是否必输 | 类型 | 长度 | 说明 |
---|---|---|---|---|---|---|
1 | msgId | 交易流水号 | M | String | 32 | 收单交易系统生成的流水号 |
2 | txId | 商户订单号 | M | String | 32 | 请求的txId原样返回 |
3 | mrchOrderNo | 商户原始订单号 | O | String | 64 | |
4 | tradeNo | 支付流水号 | M | String | 32 | 支付系统生成的唯一流水号 |
5 | authNo | 预授权号 | M | String | 64 | |
6 | tnltxId | 通道交易号 | M | string | 64 | 支付宝的资金操作流水号 |
7 | userId | 用户子标识 | M | String | 128 | 支付宝支付时为买家在支付宝的用户ID |
8 | buyerLogonId | 付款方支付宝账号 | M | String | 100 | 付款方支付宝账号(Email或手机号) |
9 | timeEnd | 交易完成时间 | O | String | 14 | |
10 | txAmt | 交易金额 | M | String | 15 | 单位元,精确到小数点后两位。 |
11 | ccy | 标价币种 | O | String | 3 | 默认CNY-人民币。指txAmt的币种。 |
12 | preAuthType | 预授权类型 | O | String | 20 | 目前支持CREDIT_AUTH(信用预授权);商户可根据该标识来判断该笔预授权的类型,当返回值为"CREDIT_AUTH"表明该笔预授权为信用预授权,没有真实冻结资金; 当返回值为空或者不为"CREDIT_AUTH"则表明该笔预授权为普通资金预授权,会冻结用户资金。 |
13 | creditAmt | 信用冻结金额 | O | String | 15 | 本次冻结操作中信用冻结金额 |
14 | fundAmt | 自有资金冻结金额 | O | String | 15 | 本次冻结操作中自有资金冻结金额 |