硬件有三种合作方案选择:
Option1(支付宝推荐硬件):合作方基于海马S1(商米FT1 MINI)接入,查看海马S1的开发资料,请进入下面第四步
Option2(其它第三方硬件):第三方硬件已经按照支付宝的iot团餐流程完成接入,请进入下面第4步
Option3(合作方自有硬件):根据支付宝的iot合作流程接入,请见下面第三步,请进入下面第2步
提交合作申请,发送到指定邮箱:iot_campus@service.alipay.com
邮件标题:***申请企业团餐在线刷脸付接入合作
邮件内容:
具体接入指引,需开通并登录邻客蚁查看,邻客蚁开通请参见下面第4步。
团餐刷脸支付机具规范及接入流程:链接
提交合作申请,发送到指定邮箱:iot_campus@service.alipay.com。项目成员在收到邻客蚁发出的邀请注册邮件后点击确认,就可以通过发送的链接登录邻客蚁访问项目空间里面的相关文资料。
邮件标题:***申请高校/企业团餐海马S1(商米FT1 MINI)邻客蚁合作项目
邮件内容:
检查机具是否预置有iot sdk和smile apk。
说明:人脸smile包依赖iot sdk已经集成预置。
如果需要有餐补身份校验,isv创建并开发授权小程序。用户进入小程序后通过用户授权获取uid,并保存uid,建立用户校园或企业内部身份与支付宝账号一一对应的关系。参考资料:小程序授权接入
如果商户选择代扣支付,需要完成商户和用户签约,对接文档:商户代扣产品介绍、小程序独立签约组件接入
如果基于设备开发的是android应用,请见邻客蚁上刷脸付native方式接入文档:native接入方式-刷脸付native方式接入文档
说明:服务商/商户需签约刷脸付和当面付
如果基于设备开发的是iot小程序应用,请见邻客蚁上刷脸付小程序方式接入文档:小程序接入方式-刷脸付小程序方式接入文档
说明:服务商/商户需签约当面付
以上文档需在第4步完成邻客蚁权限申请才能访问
如果设备选择是海马S1,收银引用可以根据海马开发指引实现扫码码值读取,海马扫码接口。
如果商户有自己餐补核销逻辑,需要在应付餐费减去餐补后得到实际金额发起实际支付扣款。
如果基于当面付支付,需要服务端完成当面付请求。服务商/商户需签约刷脸付和当面付,对接文档:刷脸付产品、当面付产品。
如果基于商户代扣支付,需要服务端完成代扣支付请求。服务商/商户需签约刷脸付和商户代扣,刷脸付产品主要完成刷脸功能挂包即可,对接文档:刷脸付产品、商户代扣产品
刷脸支付加签:
第一步:调用iot sdk获取签名,无餐补核销情况下带金额加签获取签名
public String signWithFaceToken(String faceToken, String amount);
public String signWithFaceToken(String faceToken);
参数:faceToken取值人脸在线比对生成的facetoken
第二步:调用统一收单接口中,分别:auth_code字段传入facetoken,scene字段传入security_code,terminal_params参数透传由SDK产生的加签参数。
扫码当面付支付加签:
第一步:调用iot sdk获取签名,无餐补核销情况下带金额加签获取签名
public String signWithPaymentQrcode(String qrcode, String amount);
public String signWithPaymentQrcode(String qrcode);
参数:qrcode取值手机生成的二维码
第二步:调用统一收单接口中,分别:auth_code字段传入qrcode,scene字段传入bar_code,terminal_params参数透传由SDK产生的加签参数。
其中,terminal_params格式类似如下:
根据刷脸、扫码和刷卡的实际行为,在统一收单接口(alipay.trade.pay)的交易扩展里面传入iot_pay_action
2.0 接口,从接口参数上传入该参数:business_params; json 格式:key 为:iot_pay_action
对应value 定义如下:
online_face_pay - 在线刷脸支付
local_face_pay - 本地刷脸支付
nfc_pay - 刷卡支付
bar_pay - 扫码支付
特殊说明: SDK 里面business_params 参数定义是string 类型,在传参的时候,需要注意,格式为json 格式。
代码样例如下:
{"apiMethodName":"alipay.trade.pay","apiVersion":"2.0","bizContent":"{\"extend_params\":{\"sys_service_provider_id\":\"20883*******\"},\"out_trade_no\":\"201903151146*********\",\"total_amount\":\"0.01\",\"terminal_params\":\"{\\\"terminalType\\\":\\\"IOT\\\",\\\"signature\\\":\\\"QIIAxgwd8ahO3dt_6pxykJhb0V5N4Lei1W32eaJulIINM-EB\\\",\\\"apdidToken\\\":\\\"mn85RGbvtOX08S-YFLqX1invNQGqgdvozl6lu9xCLF0OZkxqaQEAAA==\\\",\\\"hardToken\\\":\\\"\\\",\\\"time\\\":\\\"1552453003\\\",\\\"bizCode\\\":\\\"11000200040004200021\\\",\\\"bizTid\\\":\\\"01010IT02U****************\\\",\\\"signedKeys\\\":\\\"authCode,totalAmount,apdidToken,hardToken,time,bizCode,bizTid\\\"}\",\"subject\":\"******食堂-消费\",\"agreement_params\":{\"agreement_no\":\"201950***********\"},\"business_params\":{\"iot_pay_action\":\"local_face_pay\"},\"product_code\":\"GENERAL_WITHHOLDING\",\"seller_id\":\"20887********\",\"auth_code\":\"01010IT02U5XBiQ***********\"}","needEncrypt":false,"notifyUrl":"https://zxbxcx.cdyqsh.com:5009/ydtong/notifyUrl.htm","responseClass":"com.alipay.api.response.AlipayTradePayResponse","returnUrl":"https://zxbxcx.cdyqsh.com:5009/ydtong/notifyUrl.htm","textParams":{"biz_content":"{\"extend_params\":{\"sys_service_provider_id\":\"208833********\"},\"out_trade_no\":\"201903151********\",\"total_amount\":\"0.01\",\"terminal_params\":\"{\\\"terminalType\\\":\\\"IOT\\\",\\\"signature\\\":\\\"QIIAxgwd8ahO3dt_6pxykJhb0V5N4Lei1W32eaJulIINM-EB\\\",\\\"apdidToken\\\":\\\"mn85RGbvtOX08S-YFLqX1invNQGqgdvozl6lu9xCLF0OZkxqaQEAAA==\\\",\\\"hardToken\\\":\\\"\\\",\\\"time\\\":\\\"1552453003\\\",\\\"bizCode\\\":\\\"1100020004000*********\\\",\\\"bizTid\\\":\\\"01010IT02U5**********\\\",\\\"signedKeys\\\":\\\"authCode,totalAmount,apdidToken,hardToken,time,bizCode,bizTid\\\"}\",\"subject\":\"蓝郡湖小学食堂-消费\",\"agreement_params\":{\"agreement_no\":\"2019502******\"},\"business_params\":{\"iot_pay_action\":\"local_face_pay\"},\"product_code\":\"GENERAL_WITHHOLDING\",\"seller_id\":\"208870231*****\",\"auth_code\":\"01010IT02U*********\"}"}}
支付宝请求样例如下:
//openapi.alipay.com/gateway.do?charset=GBK&alipay_sdk=alipay-sdk-java-3.4.101.ALL&biz_content={"extend_params":{"sys_service_provider_id":"20883*******"},"out_trade_no":"201903151146*********","total_amount":"0.01","terminal_params":"{\"terminalType\":\"IOT\",\"signature\":\"QIIAxgwd8ahO3dt_6pxykJhb0V5N4Lei1W32eaJulIINM-EB\",\"apdidToken\":\"mn85RGbvtOX08S-YFLqX1invNQGqgdvozl6lu9xCLF0OZkxqaQEAAA==\",\"hardToken\":\"\",\"time\":\"1552453003\",\"bizCode\":\"11000200040004200021\",\"bizTid\":\"01010IT02U****************\",\"signedKeys\":\"authCode,totalAmount,apdidToken,hardToken,time,bizCode,bizTid\"}","product_code":"GENERAL_WITHHOLDING","subject":"******食堂-消费","agreement_params":{"agreement_no":"201950***********"},"business_params":{"iot_pay_action":"local_face_pay"},"seller_id":"20887********","auth_code":"01010IT02U5XBiQ***********"}&method=alipay.trade.pay&sign=***&format=json&return_url=https://zxbxcx.cdyqsh.com:5009/ydtong/notifyUrl.htm¬ify_url=https://zxbxcx.cdyqsh.com:5009/ydtong/notifyUrl.htm&version=2.0&app_id=2018122762705184&sign_type=RSA2×tamp=2019-03-18 10:43:07
如果需要获取用户付款码的用户信息,通过当面付二阶段解码api接口获取,该接口需要联系支付宝小二完成后台挂包获取权限。
前置依赖条件:获取用户授权(需要对接获取会员信息,scope需选择auth_ecard),获取商户授权。
为维护设备与服务商、商户及门店的关系(设备 sn - ISV 服务商 PID - 商户 PID - 门店 shop id),确保对设备可追溯和可运营。IoT设备绑定业务逻辑在服务商服务端开发及作业完成。请严格按照行业解决方案要求完成设备 IoT 绑定,获取行业设备激励。
IoT 设备接入定向绑定解绑及绑定状态查询 API 接口,适合于 校园团餐、企业团餐 场景的行业接入。接入流程请参见:IOT设备绑定门店。
*注意:此处仅调用 《IOT设备绑定解绑接入文档 》,不能调用 《IOT设备注册激活接入》 文档
IoT 设备设备绑定解绑定向 API 特别说明:
传参需求 |
Key |
Value |
value来源及使用说明 |
绑定ISV |
type |
COMMON_ISV |
在 principal 中传入ISV PID关系 |
id |
绑定关系 id |
id 来源于要绑定isv的支付宝账号 PID |
|
绑定商户 |
type |
COMMON_MERCHANT |
在 principal 中传入商户 PID 关系 |
id |
绑定关系 id |
id 来源于要绑定商户的支付宝账号 PID |
|
绑定门店 |
type |
COMMON_MERCHANT |
在 principal 中传入门店关系 |
id |
绑定关系 id |
id来源于要绑定门店的shop id,shop id在蚂蚁开放平台创建门店分配的id |
|
绑定学校 |
school_stdcode |
绑定关系 id |
在扩展字段 ext_info 中的传入 school_stdcode 及其对应 id 值,绑定关系 id 来源于学校组织机构代码证,ext_info":"{\"school_stdcode\":\"2088200135791293\"}"。 |
说明:IoT 设备接入定向绑定解绑 API 接口,属于定向开放接口,需申请接口权限。
为方便合作伙伴快速调试,如果合作方没有正式的合作学校不能够创建门店,可以在联调阶段使用如下测试门店 ID
提交验收申请,发送到指定邮箱:iot_campus@service.alipay.com,
邮件标题:***申请团餐在线刷脸付接入验收
邮件内容: