刷脸支付说明

关于扫脸支付的说明

商户授权流程

在真实的生成环境中,发起扫脸支付前,商家需要使用支付宝客户端(登录进件时提交的收款账户)扫码授权商米收银台,表示商家同意使用收银台做收单业务。

在开发测试阶段,商米会提供测试的商家支付宝账号并远程完成设备授权,开发者只需要提供设备的SN给到商米的技术支持人员即可开通。

用户扫脸支付流程

扫脸支付时输入几位手机号由支付宝云端算法控制终端程序无法控制,扫脸收到的款项汇会实时结算到商家的支付宝账户。

主屏同步显示副屏刷脸界面(限台式双屏设备)

双屏设备在使用扫脸支付时,主屏幕上会实时显示副屏的刷脸界面(效果见下图),方便操作员了解用户当前的刷脸支付状态并做出相应引导。

该功能在收银台版本≥1.4存在,且需rom支持才能生效,在不支持该功能的rom上表现为显示缺省页面(效果见下图)。

该功能对Saas软件开放,调用方在调用消费接口时,即可使用。

注意:使用此功能时,SaaS软件程序在副屏需要有默认的UI界面(广告页或其他),否则主屏内容会投射到副屏影响显示效果,进而影响消费者使用体验。

扫脸支付主屏

不支持录屏功能的扫脸支付主屏

扫脸支付副屏

附录C

(金融设备调用额外返回码定义)

Result Code Result Msg
401 交易失败
402 无效的应用类型
403查询不到此笔交易
404超过最大交易金额
405无效的原交易参考号
406无效的原交易凭证号
407无效的交易类型
408查询不到末笔交易
409无效的金额
410刷卡失败,请重试(POS外设获取不到卡信息)
411交易本地处理失败
412签到失败
413交易超时
414应用初始化失败,请重试
416无效的交易日期
417无效的MIS订单号
418交易取消
420流水未结算,请先完成结算
421签退失败
422TMK下载失败
423终端参数下载错误
424参数校验错误
425交易笔数达到上限
426交易关闭

附录B

(新版调用返回码定义)

Result CodeResult Msg议显示内容
T00交易成功交易成功
D01状态不明状态不明,立即查询
T07交易失败(resultMsg会有具体错误)交易失败

(旧版调用返回码定义)

Result CodeResult Msg建议显示内容
T00交易成功交易成功
T01无效交易(T01)无效交易,请重试
T02余额不足(T02)余额不足,请更换支付方式
T03交易金额超限(T03)交易金额超限,确认后重试
T04商户余额不足(T04)商户余额不足,请检查后重试
T05密码错误(T05)密码错误,请重试
T06重复交易(T06)重复交易,请重新发起交易
T07交易失败(T07)交易失败,请稍后重试
T08无效交易(T08)暂不支持当日退款,请隔日再试
T09有作弊嫌疑(T09)状态异常,请稍后重试或更换支付方式
T10MAC校验失败(T10)MAC校验失败,请稍后重试
T11舞弊嫌疑(T11)有舞弊嫌疑,请更换支付方式重试
T12支付失败,简易客户使用其他支付方式(T12)支付失败,请稍后重试或更换支付方式
T13针对盛付通不支持当日部分退款情况(T13)当日交易不支持部分退款,请隔日再试
E01无效商户(E01)无效商户,请向您的供货商确认商户状态
E02无效金额(E02)无效金额,请确认后重试
E04终端号无效(E04)无效终端,请向您的供货商确认终端状态
E05验签失败(E05)验签失败
E06SN号无效(E06)无效SN,请向您的供货商检查SN状态
E07初始化失败未开户!1. 您可尝试在设置内更新终端参数 2. 联系您的供货商确认是否开通支付服务,或咨询客服4009021168
E08SN号不存在(E08)SN不存在,请向您的供货商确认后重试
E09无效门店(E09)无效门店,请向您的供货商确认门店状态
E10SN号不能为空(E10)SN号不能为空
E11商户号不能为空(E11)商户号不能为空
E12交易日期不能为空(E12)交易日期不能为空
E13交易日期无效(E13)交易日期无效
E14终端未登记(E14)终端未登记,请向您的供货商确认后重试
E15参数校验错误(框架返回码 -1)(E15)参数校验错误
E16付款码已过期(E16)付款码已过期,请刷新后重试
E17付款码无效(E17)付款码无效,请确认后重试
E18无效的应用类型(E18)无效的应用类型
E19查询不到此笔交易(E19)找不到原交易,请确认后重试
E20无效的交易类型(E20)无效的交易类型
E21无效的MIS订单号(E21)无效的MIS订单号
E22退款金额有误(E22)退款金额超限,请确认后重试
E23查询不到设备支付宝授权信息(E23)查询不到设备支付宝授权信息
E24查询不到支付宝授权信息(E24)查询不到支付宝授权信息
E25查询设备进件信息失败或未进件(E25)查询设备进件信息失败或未进件
E26查询商户信息失败或商户信息不存在(E26)查询商户信息失败或商户信息不存在
E27查询退款订单信息参数缺少(E27)查询退款订单信息参数缺少
E28不是退款订单(E28)退款订单无效,请重试
E29查询订单列表信息失败(E29)查询订单列表信息失败
E30应用APPID填写错误(E30)联系支付宝,确认APP_ID的状态
E31商户收款额度超限(E31)收款额度超限,可联系支付宝95188提额
E32商户收款金额超过月限额(E32)月收款额超限,联系支付宝95188提额
E33商家账号被冻结(E33)商户账号被冻结,请咨询支付宝95188
E34二级商户信息创建失败(E34)商户信息有误,请检查商户信息是否有效
E35二级商户类型非法(E35)商户类型不合规,请检查商户信息是否有效
E36商户协议状态非正常状态(E36)商户与支付宝的合同非正常状态
E37请求退款的交易被冻结(E37)退款交易被冻结,联系支付宝确认
E38交易已完结(E38)交易已完结无法退款,请确认退款交易信息是否正确
E39当前交易不允许退款(E39)退款失败,请检查交易是否成功或商户是否支持退款
D01系统错误(如果当前为支付交易POS无需显示,此返回码仅为状态,可调用查询订单API,查询当前订单的状态)
D02记录订单号失败如果当前为退款或查询交易,pos显示:系统错误,请重试
D03原交易已撤销(D03)原交易已撤销,请确认后重试
D04订单已关闭(D04)订单已关闭,请重新发起交易
D05订单已支付(D05)订单已支付
D06订单已撤销(D06)订单已撤销
D07用户支付中(D07)用户支付中,需要输入密码
D08订单未支付(D08)订单未支付
D09订单支付失败(D09)订单支付失败
D10订单异常(D10)订单异常
D11订单号重复(D11)订单号重复
D12记录订单号失败(D12)记录订单号失败
D13更新订单号信息失败(D13)更新订单号信息失败
D14查询不到订单信息(D14)查询不到订单信息
D15记录退款信息失败(D15)记录退款信息失败
D16更新退款信息失败(D16)更新退款信息失败
D17查询总额失败(包含收款,退款,交易统计等)(D17)总额查询失败,请稍后重试
D18订单信息有误(D18)订单信息有误,请修改后重试
S01系统错误(S01)系统错误
S02未知错误(S02)未知错误
S03系统异常(S03)系统异常
S04未开通支付通道未开户!1. 您可尝试在设置内更新终端参数 2. 联系您的供货商确认是否开通支付服务,或咨询客服4009021168
C01参数下载失败(C01)参数下载失败
F01交易超时(F01)交易超时,请重试
F02系统异常(F02)系统异常
F03请求支付宝支付接口失败(F03)请求支付宝支付接口失败
F04请求支付宝退款接口失败(F04)请求支付宝退款接口失败
F05请求支付宝订单详情接口失败(F05)请求支付宝订单详情接口失败
F06请求支付宝退款详情接口失败(F06)请求支付宝退款详情接口失败
F07请求盛付通支付接口失败(F07)请求盛付通支付接口失败
F08交易异常,联系收单行或发卡行(F08)交易异常,联系收单行或发卡行
B00调用成功成功
Q01网络异常网络异常
Q02网络超时网络超时
Q03参数异常参数异常
Q04服务器异常服务器异常
Q05网络异常网络异常
Q06请求取消请求取消
Q07网络或服务器异常网络或服务器异常,请重试
Q08交易取消交易取消
Q09请求正在处理中请求正在处理中
Q10功能暂不支持功能暂不支持
Q11交易超时交易超时
Q12支付宝人脸未授权未授权,请打开商米收银台完成人脸授权后重试
Q13人脸支付手机号无效无效的手机号,请重新输入
Q14收银台程序被关闭,交易状态未知收银台服务已终止,您可通过查询接口获取交易状态
Q15未安装人脸支付组件人脸支付服务未安装,请安装后重试
Q16打印机异常打印机异常,请检查
Q17调用权限不足调用权限不足
Q18取消交易成功 
Q19取消交易失败取消失败

附录A


(Android调用代码示例)

A1.1.1 初始化:

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // 服务初始化
        PaymentService.getInstance().init(this);
    }
}

发起交易: 两种调用方式不要同时使用,请使用其中一个

A1.1.2 以广播方式接收交易结果

Request request = new Request();
request.appType = "00"; // 应用类型
request.transType = "00"; // 交易类型
request.amount = 1L; // 交易金额, 单位: 分
request.appId = getPackageName(); // 业务软件包名, 必填
Gson gson = new Gson();
String jsonStr = gson.toJson(request);
PaymentService.getInstance().callPayment(request, new PaymentService.PaymentCallback() {
        @Override
        public void callFail() {
            // 1.调用失败,需要重新初始化后再调用
            PaymentService.getInstance().init(getApplication());
            // 2.提示用户:交易失败请重试
            // 3.如果反复失败请检查系统是否已安装了“收银台更新”应用
        }

        @Override
        public void callSuccess() { 
             //调用成功,等待接收交易结果的广播
        }
    }); 

通过Broadcastreceiver接收交易结果:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // 注册广播接收者或者静态注册广播接收者都可以
    IntentFilter filter = new IntentFilter();
    filter.addAction("sunmi.payment.action.result");
    registerReceiver(receiver, filter);
} 
@Override
protected void onDestroy() {
    super.onDestroy();
    if (receiver != null) {
        unregisterReceiver(receiver); // 反注册
    }
}
private BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        if (action.equals("sunmi.payment.action.result")) {
            String jsonStr = intent.getStringExtra("response");
            if(TextUtils.isEmpty(jsonStr)){
                // error: result is null
                return;
            }
            Gson gson = new Gson();
            Response response = gson.fromJson(jsonStr, Response.class);
            switch (response.resultCode){
                case "T00"://交易成功
                    // 通过response获取支付结果相关信息
                    break;
                default:
                    // 交易失败
                    // resultMsg表示失败原因的文字描述,可用于显示或者记录。
                    String resultMsg = response.resultMsg;
                    // show msg...
                    break;
            }
        }
    }
}; 

A1.1.3 Jar包与类文件:

A1.1.4 接口调用重连机制:

// 重连机制
String jsonStr = gson.toJson(request);
PaymentService.getInstance().callPayment(request, new PaymentService.PaymentCallback() {
        @Override
        public void callFail() {
            // 1.调用失败,需要重新初始化后再调用
            PaymentService.getInstance().init(getApplication());
            // 2.提示用户:交易失败请重试
            // 3.如果反复失败请检查系统是否已安装了“收银台更新”应用
        }

        @Override
        public void callSuccess() { 
             //调用成功,等待接收交易结果的广播
        }
    });


批量交易记录查询

批量交易记录查询

按日期查询交易记录

Request

数据项数据类型(默认String)标识是否必填(M/C)说明
应用IdStringappIdM应用包名,android APP程序packagename
交易类型StringtransTypeMA3-批量交易记录查询        
订单类型StringorderTypeM订单类型:1:收款(非金融设备)2:退款(非金融设备)3:金融设备
日期StringdateM日期,格式:2018-09-12
分页页码IntegerpageM分页页码,从1开始
每页返回数量IntegerpageSizeM每页返回交易记录的数量,最大50

Response

数据项数据类型(默认String)标识是否必填(M/C)说明
交易结果返回码StringresultCodeMT00:成功非T00:失败, 见返回码定义(附录B)
返回码描述StringresultMsgC 
数据总数IntegertotalM查询日期的数据总数
交易数据列表ArrayorderListC交易记录列表(出错时不返回),格式如下:
交易结果返回码StringresultCodeMT00:成功非T00:失败, 见返回码定义(附录B)
订单状态StringstateC订单状态(仅扫码返回):1-交易创建,交易提交到支付通道,待付款 2-订单未付款3-交易成功,包含:收款、退款等成功 4-交易结束,不可退款,如撤单后原订单即为此状态 5-交易失败
交易类型StringtransTypeM 
收银台流水号StringmisIdM用于标识当笔交易的交易的订单号,交易处理结果中会带回。
Saas系统支付订单号StringorderIdCApp自定义的任意字符串,用于标识当笔交易的Saas系统支付订单号,交易处理结果中会带回。
Saas系统业务订单号StringbusinessIdCApp自定义的任意字符串,用于标识当笔交易的Saas系统业务订单号,交易处理结果中会带回。
商户(第三方平台)订单号StringplatformIdC商户(第三方平台)订单号(微信、支付宝客户端显示的订单号,银行卡交易则返回系统参考号)
支付方式StringplatformMwxpay:微信支付alipay:支付宝支付unionpay:银联钱包支付card:银行卡支付
交易金额LongamountM单位为分,1元表示为100L
实付金额Longamount1C单位为分,1元表示为100L
优惠金额Longamount2C单位为分,1元表示为100L
已退款金额LongrefundedC单位为分,1元表示为100L
交易日期StringtransDateC格式“MMdd” 
交易时间StringtransTimeC格式“HHmmss” 
凭证号StringvoucherNumC撤销、查询、打印使用
批次号StringbatchNumC 
系统参考号StringreferenceNumC部分业务退货使用
授权码StringauthNumC 
卡号StringcardNumC脱敏处理规则:除前六位和后四位之外其余位变*号处理。
发卡行StringissuerC 
收单行StringacquirerC 
操作员号StringoperatorIdC 
卡类型StringcardTypeCIC、NFC、MAG
账户类型StringaccountTypeC“OA”:扫码”CC”:贷记卡
“DC”:借记卡
“SCC”:准贷记卡”EC”:电子现金
“MAG”:磁条卡
“VC”:Visa卡
“MC”:MasterCard 万事达卡
“AE”:美国运通卡
“JCB”:JCB卡是源自日本的世界通用国际信用”RPC”:RuPay(India)印度卡
机型StringmodelCPOS外设型号
版本StringversionCPOS应用版本
终端号StringterminalIdC 
商户号StringmerchantIdC 

单笔交易记录查询

单笔交易记录查询

查询某一笔历史交易, 如果消费、退款时因网络原因遇到超时(如应答码Q02,参考),可尝试通过单笔交易查询接口查询交易状态.

Request

数据项数据类型(默认String)标识是否必填(M/C)说明
应用IdStringappIdM应用包名,android APP程序packagename
交易类型StringtransTypeMA2-交易记录查询(非金融设备为云端查询,金融设备为本地查询)
收银台流水号StringmisId特殊选项用于标识当笔交易的订单号,交易处理结果中会带回。(特殊选项N选一)
Saas软件订单号StringorderId特殊选项App自定义的任意字符串,用于标识当笔交易的Saas软件订单号,交易处理结果中会带回。(特殊选项N选一)
商户(第三方平台)订单号StringplatformId特殊选项商户(第三方平台)订单号(微信、支付宝客户端显示的订单号),此订单号只能查询消费交易

Response

数据项数据类型(默认String)标识是否必填(M/C)说明
交易结果返回码StringresultCodeMT00:成功非T00:失败, 见返回码定义(附录B)
返回码描述StringresultMsgC 
交易类型StringtransTypeM 
收银台流水号StringmisIdM用于标识当笔交易的交易的订单号,交易处理结果中会带回。
Saas系统支付订单号StringoriderIdCApp自定义的任意字符串,用于标识当笔交易的Saas系统支付订单号,交易处理结果中会带回。
Saas系统业务订单号StringbusinessIdCApp自定义的任意字符串,用于标识当笔交易的Saas系统业务订单号,交易处理结果中会带回。
商户(第三方平台)订单号StringplatformIdC商户(第三方平台)订单号(微信、支付宝客户端显示的订单号,银行卡交易则返回系统参考号)
订单状态StringstateC订单状态(仅扫码返回):1-交易创建,交易提交到支付通道,待付款 2-订单未付款3-交易成功,包含:收款、退款等成功 4-交易结束,不可退款,如撤单后原订单即为此状态 5-交易失败
支付方式StringplatformMwxpay:微信支付alipay:支付宝支付unionpay:银联钱包支付card:银行卡支付
交易金额LongamountM单位为分,1元表示为100L
实付金额Longamount1C单位为分,1元表示为100L
优惠金额Longamount2C单位为分,1元表示为100L
已退款金额LongrefundedC单位为分,1元表示为100L
交易日期StringtransDateC格式“MMdd” 
交易时间StringtransTimeC格式“HHmmss” 
凭证号StringvoucherNumC撤销、查询、打印使用
批次号StringbatchNumC 
系统参考号StringreferenceNumC部分业务退货使用
授权码StringauthNumC 
卡号StringcardNumC脱敏处理规则:除前六位和后四位之外其余位变*号处理。
发卡行StringissuerC 
收单行StringacquirerC 
操作员号StringoperatorIdC 
卡类型StringcardTypeCIC、NFC、MAG
账户类型StringaccountTypeC“OA”:扫码”CC”:贷记卡
“DC”:借记卡
“SCC”:准贷记卡”EC”:电子现金
“MAG”:磁条卡
“VC”:Visa卡
“MC”:MasterCard 万事达卡
“AE”:美国运通卡
“JCB”:JCB卡是源自日本的世界通用国际信用”RPC”:RuPay(India)印度卡
机型StringmodelCPOS外设型号
版本StringversionCPOS应用版本
终端号StringterminalIdC 
商户号StringmerchantIdC 

打印

打印

打印历史某一笔交易的签购单。

Request

数据项数据类型(默认String)标识是否必填(M/C)说明
应用IdStringappIdM应用包名,android APP程序packagename
交易类型StringtransTypeMA1-打印        
收银台流水号StringmisId特殊选项用于标识当笔交易的订单号,交易处理结果中会带回。(特殊选项N选一)
Saas软件订单号StringorderId特殊选项App自定义的任意字符串,用于标识当笔交易的Saas软件订单号,交易处理结果中会带回。(特殊选项N选一)

Response

数据项数据类型(默认String)标识是否必填(M/C)说明
交易结果返回码StringresultCodeMT00:成功非T00:失败, 见返回码定义(附录B)
交易类型StringtransTypeMA1-打印
返回码描述StringresultMsgC 
交易日期StringtransDateC格式“MMdd” 

结算 (金融设备)

结算 (金融设备)

Request

数据项数据类型(默认String)标识是否必填(M/C)说明适用范围
交易类型StringtransTypeM07-结算         
应用IdStringappIdM应用包名,android APP程序packagename 
配置参数(UI、打印等参数配置)ConfigconfigC配置UI、打印等参数扫码、银行卡
是否打印小票BooleanprintTicket(Config字段)C为true时打印;为false时不打印;默认打印(兼容老字段)扫码、银行卡、扫脸

Response

数据项数据类型(默认String)标识是否必填(M/C)说明适用范围
交易结果返回码StringresultCodeMT00:成功非T00:失败, 见返回码定义(附录B) 
返回码描述StringresultMsgC  
交易类型StringtransTypeM07-结算    
收银台流水号StringmisIdM用于标识当笔交易的订单号,交易处理结果中会带回。 
交易实收总金额StringtotalAmountM收款总金额-退款总金额 
交易汇总ArraysummaryListC交易汇总列表,格式如下: 
标题Stringtitle(summaryList字段)M汇总标题:wxpay-微信支付,alipay-支付宝,unionpay-银联钱包outcard-外卡innercard-内卡 
收款笔数StringreceiptsNum(summaryList字段)M收款笔数 
收款总金额StringtotalAmount(summaryList字段)M收款金额 
退款笔数StringrefundNum(summaryList字段)M退款笔数 
退款金额StringrefundAmount(summaryList字段)M退款金额 
预授权完成笔数StringpreAuthCmpNum(summaryList字段)M预授权完成笔数 
预授权完成金额StringpreAuthCmpAmount(summaryList字段)M预授权完成金额 
交易日期StringtransDateC格式“MMdd”  
交易时间StringtransTimeC格式“HHmmss”  
凭证号StringvoucherNumC撤销、查询、打印使用 
批次号StringbatchNumC  
操作员号StringoperatorIdC  
机型StringmodelCPOS外设型号 
版本StringversionCPOS应用版本 
终端号StringterminalIdC  
商户号StringmerchantIdC 

预授权完成 (金融设备)

预授权完成 (金融设备)

Request

数据项数据类型(默认String)标识是否必填(M/C)说明适用范围
应用类型StringappTypeM00:银行卡应用 扫码、银行卡
应用IdStringappIdM应用包名,android APP程序packagename扫码、银行卡
交易类型StringtransTypeM05-预授权完成扫码、银行卡
交易金额LongamountC单位为分,1元表示为100L,最多12位扫码、银行卡
Saas系统支付订单号StringorderIdM1.Saas系统的支付订单号(字符串),用于标识当笔交易的支付订单号,交易处理结果中会带回。2.业务订单号与支付订单号的关系:一个业务订单号可以对应多个支付订单号,比如用户买了一件商品后会产生一个业务订单号和一个消费支付订单号,用户将此商品退款后又会产生一个退款的支付订单号。3.如果Saas业务系统中业务订单号与支付订单号是一对一的关系或者没有支付订单号的情况那么两个订单号都填写业务订单号即可。4.推荐不要超过32位扫码、银行卡、扫脸
Saas系统业务订单号StringbusinessIdM1.Saas系统的业务订单号(字符串,不包含特殊字符),用于标识当笔交易属于哪一笔业务订单,交易处理结果中会带回。2.业务订单号与支付订单号的关系:一个业务订单号可以对应多个支付订单号,比如用户买了一件商品后会产生一个业务订单号和一个消费支付订单号,用户将此商品退款后又会产生一个退款的支付订单号。3.如果Saas业务系统中业务订单号与支付订单号是一对一的关系或者没有支付订单号的情况那么两个订单号都填写业务订单号即可。4.最多50个字符长度扫码、银行卡、扫脸
预授权App订单号StringoriMisId特殊选项特殊选项N选一,预授权交易时的App订单号扫码、银行卡
预授权Saas系统支付订单号StringoriOrderId特殊选项特殊选项N选一,预授权交易时的orderId扫码、银行卡
原商户(平台)订单号StringoriPlatformId特殊选项特殊选项N选一扫码、银行卡
配置参数(UI、打印等参数配置)ConfigconfigC配置UI、打印等参数扫码、银行卡
是否打印小票BooleanprintTicket(Config字段)C为true时打印;为false时不打印;默认打印(兼容老字段)扫码、银行卡、扫脸

Response

数据项数据类型(默认String)标识是否必填(M/C)说明适用范围
交易结果返回码StringresultCodeMT00:成功非T00:失败, 见返回码定义(附录B)扫码、银行卡
返回码描述StringresultMsgC 扫码、银行卡
应用类型StringappTypeM00:银行卡应用01:聚合扫码支付应用02:银行卡+银联扫码支付应用51:刷脸支付扫码、银行卡
交易类型StringtransTypeM05-预授权完成扫码、银行卡
收银台流水号StringmisIdM用于标识当笔交易的订单号,交易处理结果中会带回。扫码、银行卡
Saas系统支付订单号StringorderIdM1.Saas系统的支付订单号(字符串,不包含特殊字符),用于标识当笔交易的支付订单号,交易处理结果中会带回。2.业务订单号与支付订单号的关系:一个业务订单号可以对应多个支付订单号,比如用户买了一件商品后会产生一个业务订单号和一个消费支付订单号,用户将此商品退款后又会产生一个退款的支付订单号。3.如果Saas业务系统中业务订单号与支付订单号是一对一的关系或者没有支付订单号的情况那么两个订单号都填写业务订单号即可。扫码、银行卡、扫脸
Saas系统业务订单号StringbusinessIdM1.Saas系统的业务订单号(字符串,不包含特殊字符),用于标识当笔交易属于哪一笔业务订单,交易处理结果中会带回。2.业务订单号与支付订单号的关系:一个业务订单号可以对应多个支付订单号,比如用户买了一件商品后会产生一个业务订单号和一个消费支付订单号,用户将此商品退款后又会产生一个退款的支付订单号。3.如果Saas业务系统中业务订单号与支付订单号是一对一的关系或者没有支付订单号的情况那么两个订单号都填写业务订单号即可。扫码、银行卡、扫脸
商户(第三方平台)订单号StringplatformIdC商户(第三方平台)订单号(微信、支付宝客户端显示的订单号,银行卡交易则返回系统参考号)扫码、银行卡
支付方式StringplatformMwxpay:微信支付alipay:支付宝支付unionpay:银联钱包支付card:银行卡支付扫码、银行卡、扫脸
交易金额LongamountM单位为分,1元表示为100L扫码、银行卡
实付金额Longamount1C单位为分,1元表示为100L扫码、银行卡
优惠金额Longamount2C单位为分,1元表示为100L扫码、银行卡
交易日期StringtransDateC格式“MMdd” 扫码、银行卡
交易时间StringtransTimeC格式“HHmmss” 扫码、银行卡
凭证号StringvoucherNumC撤销、查询、打印使用银行卡
批次号StringbatchNumC 银行卡
系统参考号StringreferenceNumC部分业务退货使用银行卡
授权码StringauthNumC 银行卡
卡号StringcardNumC脱敏处理规则:除前六位和后四位之外其余位变*号处理。银行卡
发卡行StringissuerC 银行卡
收单行StringacquirerC 银行卡
操作员号StringoperatorIdC 扫码、银行卡
卡类型StringcardTypeCIC、NFC、MAG扫码、银行卡
账户类型StringaccountTypeC“OA”:扫码”CC”:贷记卡
“DC”:借记卡
“SCC”:准贷记卡”EC”:电子现金
“MAG”:磁条卡
“VC”:Visa卡
“MC”:MasterCard 万事达卡
“AE”:美国运通卡
“JCB”:JCB卡是源自日本的世界通用国际信用”RPC”:RuPay(India)印度卡
扫码、银行卡
机型StringmodelCPOS外设型号扫码、银行卡、扫脸
版本StringversionCPOS应用版本 
终端号StringterminalIdC  
商户号StringmerchantIdC 

预授权(金融设备)

预授权(金融设备)

Request

数据项数据类型(默认String)标识是否必填(M/C)说明适用范围
应用类型StringappTypeM00:银行卡应用 扫码、银行卡
应用IdStringappIdM应用包名,android APP程序packagename扫码、银行卡
交易类型StringtransTypeM03-预授权扫码、银行卡
交易金额LongamountM单位为分,1元表示为100L,最多12位扫码、银行卡
Saas系统支付订单号StringorderIdM1.Saas系统的支付订单号(字符串),用于标识当笔交易的支付订单号,交易处理结果中会带回。2.业务订单号与支付订单号的关系:一个业务订单号可以对应多个支付订单号,比如用户买了一件商品后会产生一个业务订单号和一个消费支付订单号,用户将此商品退款后又会产生一个退款的支付订单号。3.如果Saas业务系统中业务订单号与支付订单号是一对一的关系或者没有支付订单号的情况那么两个订单号都填写业务订单号即可。4.推荐不要超过32位扫码、银行卡、扫脸
Saas系统业务订单号StringbusinessIdM1.Saas系统的业务订单号(字符串,不包含特殊字符),用于标识当笔交易属于哪一笔业务订单,交易处理结果中会带回。2.业务订单号与支付订单号的关系:一个业务订单号可以对应多个支付订单号,比如用户买了一件商品后会产生一个业务订单号和一个消费支付订单号,用户将此商品退款后又会产生一个退款的支付订单号。3.如果Saas业务系统中业务订单号与支付订单号是一对一的关系或者没有支付订单号的情况那么两个订单号都填写业务订单号即可。4.最多50个字符长度扫码、银行卡、扫脸
配置参数(UI、打印等参数配置)ConfigconfigC配置UI、打印等参数扫码、银行卡
是否打印小票BooleanprintTicket(Config字段)C为true时打印;为false时不打印;默认打印(兼容老字段)扫码、银行卡、扫脸

Response

数据项数据类型(默认String)标识是否必填(M/C)说明适用范围
交易结果返回码StringresultCodeMT00:成功非T00:失败, 见返回码定义(附录B)扫码、银行卡
返回码描述StringresultMsgC 扫码、银行卡
应用类型StringappTypeM00:银行卡应用01:聚合扫码支付应用02:银行卡+银联扫码支付应用51:刷脸支付扫码、银行卡
交易类型StringtransTypeM03-预授权扫码、银行卡
收银台流水号StringmisIdM用于标识当笔交易的订单号,交易处理结果中会带回。扫码、银行卡
Saas系统支付订单号StringorderIdM1.Saas系统的支付订单号(字符串,不包含特殊字符),用于标识当笔交易的支付订单号,交易处理结果中会带回。2.业务订单号与支付订单号的关系:一个业务订单号可以对应多个支付订单号,比如用户买了一件商品后会产生一个业务订单号和一个消费支付订单号,用户将此商品退款后又会产生一个退款的支付订单号。3.如果Saas业务系统中业务订单号与支付订单号是一对一的关系或者没有支付订单号的情况那么两个订单号都填写业务订单号即可。扫码、银行卡、扫脸
Saas系统业务订单号StringbusinessIdM1.Saas系统的业务订单号(字符串,不包含特殊字符),用于标识当笔交易属于哪一笔业务订单,交易处理结果中会带回。2.业务订单号与支付订单号的关系:一个业务订单号可以对应多个支付订单号,比如用户买了一件商品后会产生一个业务订单号和一个消费支付订单号,用户将此商品退款后又会产生一个退款的支付订单号。3.如果Saas业务系统中业务订单号与支付订单号是一对一的关系或者没有支付订单号的情况那么两个订单号都填写业务订单号即可。扫码、银行卡、扫脸
商户(第三方平台)订单号StringplatformIdC商户(第三方平台)订单号(微信、支付宝客户端显示的订单号,银行卡交易则返回系统参考号)扫码、银行卡
支付方式StringplatformMwxpay:微信支付alipay:支付宝支付unionpay:银联钱包支付card:银行卡支付扫码、银行卡、扫脸
交易金额LongamountM单位为分,1元表示为100L扫码、银行卡
交易日期StringtransDateC格式“MMdd” 扫码、银行卡
交易时间StringtransTimeC格式“HHmmss” 扫码、银行卡
凭证号StringvoucherNumC撤销、查询、打印使用扫码
批次号StringbatchNumC 扫码
系统参考号StringreferenceNumC部分业务退货使用扫码
授权码StringauthNumC 扫码
卡号StringcardNumC脱敏处理规则:除前六位和后四位之外其余位变*号处理。银行卡
发卡行StringissuerC 银行卡
收单行StringacquirerC 银行卡
操作员号StringoperatorIdC 银行卡
卡类型StringcardTypeCIC、NFC、MAG银行卡
账户类型StringaccountTypeC“OA”:扫码”CC”:贷记卡
“DC”:借记卡
“SCC”:准贷记卡”EC”:电子现金
“MAG”:磁条卡
“VC”:Visa卡
“MC”:MasterCard 万事达卡
“AE”:美国运通卡
“JCB”:JCB卡是源自日本的世界通用国际信用”RPC”:RuPay(India)印度卡
银行卡
机型StringmodelCPOS外设型号扫码、银行卡
版本StringversionCPOS应用版本扫码、银行卡
终端号StringterminalIdC 扫码、银行卡
商户号StringmerchantIdC 扫码、银行卡