获取商户信息

获取商户信息

Request

数据项数据类型(默认String)标识是否必填(M/C)说明适用范围
交易类型StringtransTypeM99-获取商户信息         
应用IdStringappIdM应用包名,android APP程序packagename 

Response

数据项数据类型(默认String)标识是否必填(M/C)说明
交易结果返回码StringresultCodeMT00:成功非T00:失败, 见返回码定义(附录B)
交易类型StringtransTypeM99-获取商户信息
返回码描述StringresultMsgC 
商户号StringmerchantIdC
终端号StringterminalIdC
机型StringmodelC
支付能力ListpaymentTypeC商家支持的支付方式:
* face:支付宝人脸
* scan:B扫C
* qrcode:C扫B
商户名称StringmerchantNameC
门店名称StringstoreNameC

对接FAQ

判断能否使用商米支付

  • 检查包名:com.sunmi.payment 是否存在且可用
pm = context.getApplicationContext().getPackageManager();
applicationInfo = pm.getApplicationInfo("com.sunmi.payment",       MATCH_UNINSTALLED_PACKAGES);
return applicationInfo!=null&& applicationInfo.enabled;

收不到交易结果广播怎么办?

  • 原因:收不到交易结果广播主要原因是SaaS程序发送交易请求到收银台后程序奔溃或被人为关闭
  • 如何解决:
    • 应用再次启动,对于没有结果的订单,应该要有查询机制
    • 对接商米云端回调接口,交易结果最好以云端交易通知为最终结果

个别返回码、异常处理方案是什么?

  • 返回码为D01、D07、F01、F02、Q02、Q04、Q07、Q11、Q14、S01、S02、S03的交易需要设计一个状态不明的订单状态,可以在交易结果页放置一个查询按钮,点击后发起查询
  • D05表示交易已经成功,当作成功处理就可以了,这个返回码不用当异常处理
  • Q09表示重复请求,业务方自定义处理方式,不处理或者设计一个防止连续点击的机制都可以
  • 其他错误码:根据不同的错误码提示收银员和消费者对应的文案即可(见Excel)

目前没有支付撤销接口?

  • 退款接口即支付撤销也支持退货,调用方不需要区分直接调用即可。

用户发起10元的支付,收银台返回【网络超时】,但实际用户支付成功,如果用户支付成功,商米是否主动发起退款?建议业务方如何处理?

  • 商米不会主动发起退款,业务方可以调用云端的关单接口(正在开发中)关闭订单退回款项,也可以调用查询接口查明订单状态后做对应处理。
  • 支付时,通过广播拿到的支付结果到底有多精准?若是有广播拿到的结果是失败或者超时,但是客户那边已经扣款了,怎么处理此种情况?
  • 正常情况结果广播的到达率和准确率都是100%,除非在接到结果之前设备断电了,业务方可以调用云端的关单接口(正在开发中)关闭订单退回款项,也可以调用查询接口查明订单状态后做对应处理。

看到文档中对于消费、退款超时或者特殊情况出现的长短款有单笔查询的接口,但是,没有找到此接口。

有没有提供异步的通知结果呢?

目前的支付超时是120秒,正常来讲,哪怕用户没事,等120秒也会有些焦躁,那么怎么可以取消当前进行的支付,重新发起支付呢?

  • 商米会提供关单接口(正在开发中)
  • 可以不使用默认的轮训模式不用等待120秒,参考 交易是否轮询

接口返回错误码Q09请求正在处理中,这种情况,再发起支付是不是无法发起交易了?

  • 需要等到前一笔交易返回,收银台只允许同时进行一笔交易

Q09请求正在处理中,这种情况为什么没有流水号

  • 这个只是告知调用方有正在进行的交易,这次请求不算一笔交易

交易失败为什么有的有交易号,有的没有交易号呢?

  • 如果是终端判断失败,请求没有发送到云端,就不会有交易号。

交易金额/实付金额/优惠金额 具体业务定义

  • 交易金额指的是商户当笔交易的收款金额,在调用支付接口时传入
  • 实付金额是指支付通道方在活动期间补贴消费者一定优惠金额后,消费者的实际付款金额,在交易完成由后返回
  • 优惠金额即支付通道在活动期间的补贴金额,在交易完成由后返回

版本变更

序号版本号变更内容时间变更人员
1V1.0初稿2018-06-26李龙涛
2V1.0.1初版2018-08-21李龙涛
3V1.0.2初版2018-09-01李龙涛
4V1.0.3修改结算与查询接口增加批量查询接口2018-09-20李龙涛
5V1.0.4错误码整理2018-10-15李龙涛
6V1.0.6增加错误码消费和退款接口增加是否展示交易结果页的参数删除一些不必要的描述修改系统结构图增加快速接入的导航2018-11-20李龙涛
7V1.0.71. 提供jar包的调用方式与相关说明2. 消费与退款接口增加config参数,配置参数统一放到config参数下3.增加processDisplay 字段 控制,交易流程的UI显示4. 修改showResult 名称为resultDisplay,但兼容老字段showResult2018-12-03李龙涛
8V1.0.8优化文档描述2018-12-20李龙涛
9V1.0.9优化文档描述2018-12-30李龙涛
9V1.0.10优化文档描述2019-01-02李龙涛
10V1.0.12消费、退款、预授权、预授权完成、查询接口增加businessId参数(系统业务订单号参数)2019-04-15李龙涛
11V1.0.141.增加 取消交易 接口2.常见问题增加对接常见问题解答3.jar包升级增加调用回调(兼容老接口)4.增加重连机制的描述和代码样例2019-07-17李龙涛
12V1.0.15增加主屏同步显示刷脸界面功能的描述2019-09-03李少文
13V1.0.18增加回调的调用方式,更新jar和javaDoc,增加二合一的调用方式说明;删除config参数下processDisplay和resultDisplay字段,功能任然保留兼容以前的;删除payCode参数功能任然保留兼容以前的2020-02-21刘成

电子发票介绍

一、商米电子发票产品介绍

商米电子发票为SaaS软件提供一站式的商户电子发票解决方案,发票电子化、抛开繁琐的纸票管理,顾客自助扫码,无须人工介入。

支持航信与百旺税控设备,提供托管、税控盒子、PC电脑3种安装方案,满足商户多样化需求。SaaS软件可通过调用商米电子发票app,完成开票服务。仅需一次对接开发,即可便捷实用电子发票服务。

商米电子发票对接文档 APP对接版(仅支持商米设备:支持T系列、D系列、S系列、V系列、P系列、L系列、M系列;当前仅支持中国大陆地区开电子发票服务)

电子发票接入对接人:王长海 13585856752

接口调用,重要提醒

接口调用说明: 调用方法、代码示例

重要提醒!!!

1. 接口调用重连机制

SaaS软件与支付服务是通过AIDL机制建立链接的,SaaS软件更新或者支付服务更新都会导致通讯链接断开,此时调用接口时会返回调用失败,需要设计重连机制保证通讯链接的健壮性,否则会导致交易失败,影响商户正常营业,具体见重连机制代码示例

2. 收不到交易结果怎么办?

原因:

收不到交易结果主要原因是SaaS程序发送交易请求到收银台后, SaaS程序奔溃或被人为关闭或设备断电。

如何解决:

  • SaaS软件发起交易请求后应立即保存订单信息并将订单状态置为状态不明,如果发生异常情况(SaaS程序奔溃或被人为关闭或断电)导致接收不到交易结果, 那么SaaS软件再次启动时,对于状态不明的订单,应该要有查询机制(主动查询或给出查询按钮让用户触发都可以)调用查询接口,查询订单的最终状态。
  • 对接商米云端回调接口,交易结果以云端交易通知为最终结果(可选)

安装商米收银台更新APK与Demo

开发阶段由商米技术支持推送apk,,上线后由商米运营推送或者ROM自带。

选择支付方式

— — 银行卡支付: 消费退款 (包括退货,消费撤销、预授权撤销、预授权完成撤销) 、预授权预授权完成结算 

— — 聚合扫码支付:消费退款

— — 刷脸:消费退款 ( 刷脸支付过程无法进行debug调试,请拔出调试线)

— — 通用: 打印单笔查询批量查询

银行卡交易类型说明

— — 消费及反向交易:包括消费、退款( 包括退货,消费撤销、预授权撤销、预授权完成撤销)交易;

— — 预授权类及反向交易:预授权、预授权完成;

— — 结算(换班):在结算过程当中,将暂时禁止发生新的交易。结算完成后,支付外接设备自动签退;

— — 打印(重打印):补打最后一笔交易或者指定流水的签购单,重打印的签购单上须具有补打标记字样。重打印功能只适用于当批次结算前的交易

— — 交易记录查询:用于查阅受理终端(或支付集成软件)上存储的当批次交易。

其他说明(金融设备,打印和常见问题)

关于金融设备(P系列)的说明

1、第三方调用时会判断签到状态,如非签到状态会需要先签到。首次签到流程会自动化进行终端主密钥下载,终端参数下载等步骤的操作。签到时如果失败会将相应的错误信息返回 APP。

2、交易成功但打印签购单失败,视为交易未结束,必须打印成功后再发起成功交易回调。

3、POS外设断电、POS应用奔溃等异常情况下,接收不到交易结果,出现长短款现象,需要调用查询接口查询该笔交易,避免打印失败但收单交易成功情况下的影响。

 关于打印

详见商米打印文档: https://docs.sunmi.com/htmls/index.html?lang=zh

刷脸和扫码二合一支付UI的说明

刷脸和扫码二合一支付UI的说明

在商米双屏台式设备上,同时开启扫码或刷脸,过程中可切换支付方式,满足用户在不同场景下的支付需求(D2-d、X2、S2、T2、T2lite),此产品功能设计属于全球首创,旨在提高设备刷脸能力的利用率。

a收银员收款时可灵活使用、切换收款方式,

可主动发起扫码或刷脸支付方式, 可中断刷脸,可重新发起刷脸 

b消费者在副屏可自主选择支付方式:扫码或刷脸

c刷脸时主屏会播放副屏的刷脸动态、进度,

在出现状况时收银员可以做出指导或改用扫码方式收款

刷脸支付说明

关于扫脸支付的说明

商户授权流程

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

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

用户扫脸支付流程

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

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

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

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

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

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

扫脸支付主屏

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

扫脸支付副屏