文档中心 > K12校园团餐---扫脸付解决方案

K12一脸通行接入指引

更新时间:2019/09/11 访问次数:4074

 

1.工作分工及流程

1.1业务接入流程:

1.2业务分工:

2.接入流程

2.1接入准备

1).签约准备

  • 学校签约准备

      1.学校已有企业支付宝账户,由支付宝BD签约为商户签约商户代扣。

      2.没有支付宝账户,需要完成以下步骤:(学校如有支付宝账户,无需关注

         第一步:如果商户没有支付宝账号,则ISV代学校(商户)创建账户

         第二步:ISV登录开放平台(https://open.alipay.com/platform/home.htm)帮助学校(商户)联系支付宝业务BD签约商户代扣(适合于校园免密支付)。

  • ISV签约准备

         第一步:ISV或厂商成为蚂蚁开放平台的开发者,创建小程序应用,获取开放平台小程序appid、第三方应用授权appid。

         第二步:挂载刷脸功能包和商户代扣接口包,需联系支付宝BD同学。

2)、开发准备

       1).用户准备

  • 大于18岁的学生或教职工已注册支付宝实名认证账户
  • 家长为孩子代开时,家长已注册支付宝实名认证账户

      2).学生数据准备

  • 必选:学生真实姓名、学生身份证号、学校名称、学生证件照张
  • 可选:家长手机号
  • 注意:以上数据必须以“学校”为主体来提供,ISV与学校须有合作协议明确相关数据使用范围及隐私条款

3).开发demo及SDK获取

  • IOTSDK获取

        扫脸设备需要接入支付宝IOT管控平台,登陆IOTSDK和profile文件获取后台,填写厂商设备信息,即可下载IOTSDK和profile文件。获取

  • 扫脸相关SDK获取:刷脸原子化能力,刷脸算法由刷脸接口人统一协调资源或者联系支付宝业务同学

3).硬件采购申请

奥比摄像头采购申请(如果硬件评估通过,请忽略此环节

第一步:邮件提交如下加白名单信息到 iot_campus@service.alipay.com

(1)申请厂商(或商户)名称及PID;(2)写明所属行业:可多选,如团餐等;(3)写明设备类型:可多选,如自助收银机、自助点餐机、售货机等;

第二步:加白名单完成后,在线(http://zimtmsvcprod.alipay.com/dapply/user/index.htm)采购下单,付款由申请者与蚂里奥线下完成。如选择D2,请再列表页面选择Torndo D2。调试样品和批量样品走同样的流程。

第三部:签约摄像头全行业激励政策

4).开店准备(按照业务要求视情况而定

i.创建门店:

第一步:ISV登录开放平台(https://open.alipay.com/platform/home.htm),选择运营中心 -> 商家管理 -> 我的商家

第二步:ISV代学校(商户)创建门店,“业务场景”必须选“K12”。如果签约主体是学校,门店类目选择“教育-学校-高中/初中/小学/幼儿园”;如果签约主体是承包商,门店类目选择“美食-团餐-校园团餐-高中/初中/小学/幼儿园”。

ii.绑定门店参见接入说明

第一步:调用云端API接口绑定机具和门店关系,“isv_id”传ISV的PID,该PID是签署返佣销售方案的PID。

第二步:验证机具设备的注册、绑定数据

2.2技术对接:

  请各方开发者根据自身角色分别仔细阅读相关接口文档。集成流程及步骤:

2.2.1.硬件对接:

1.硬件选型,摄像头对接等相关IOT对接。isv或者支付宝业务同学,发邮件iot_campus@service.alipay.com 申请对接需求。iot解决方案同学收到后承接IOT对接。IOT接入流程,具体参见《校园行业IOT接入SOP指南 1.0 beta.pdf》 

2.机具管控集成支付集成(设备厂商开发)

第一步:ISV和厂商按照物料信息表要求,邮件发出入驻申请iot_campus@service.alipay.com,解决方案收到邮件后内部走流程,启动IOT SDK集成适配

第二步:蚂蚁生成设备类型的支付宝唯一标识Item_ID、Supplier_sn,IOT解决方案在钉钉群公告

第三步:IOT SDK团队拿到Item_ID和Supplier_sn后,发布Profile.dat文件和IOT SDK测试包.获取

第四部:厂商将Profile.dat和IOT SDK测试包预置的机具里,预置要求参见IOTSDK厂商集成指南(如机具已经集成IOTSDK,可忽略此步)

第五步:ISV或厂商调用SDK数据上报接口发送设备行为数据,数据要求参见IOTSDKISV接入指南

IOT加签方法:https://alipay.open.taobao.com/docs/doc.htm?articleId=109629&docType=1#s1 本方案参见本地刷脸+代扣模式

3.iot返佣传参标准说明(按照消费、核身场景不同,请根据下表仔细校对)

分类

传参需求

Key

Value

value来源及使用说明

支付设备

门禁核身

接口连接

支付收单交易

刷脸代扣

auth_code

facetoken字符串

人脸SDK生成的facetoken字符串

必需

N/A

https://docs.open.alipay.com/api_1/alipay.trade.pay/

terminal_params

Iot sdk加签字符串

Iot sdk签名函数(signWithFaceToken())得到的字符串

必需

N/A

scence

不用处理

N/A

N/A

iot_pay_action

local_face_pay

在收单扩展字段business_params里面传入{\"iot_pay_action\":\"local_face_pay\"},local_face_pay - 本地刷脸支付,

必需

N/A

刷卡代扣

auth_code

不用处理

必需

N/A

terminal_params

Iot sdk加签字符串

Iot sdk签名函数(signWithDelegatedByAgreement())得到的字符串

必需

N/A

scence

不用处理

N/A

N/A

iot_pay_action

nfc_pay

在收单扩展字段business_params里面传入{\"iot_pay_action\":\”nfc_pay\"}

,nfc_pay - 刷卡支付

必需

N/A

设备状态

单双通道

pay_channel

single

single - 单通道,设备仅支持支付宝支付

必需

N/A

https://docs.alipay.com/pre-open/api_pre/alipay.commerce.iot.mdeviceprod.device.initialize

supplier_expansion

Y

Y – 自己采购,合作方自己采购摄像

必需

N/A

绑定ISV

type

COMMON_ISV

在principal中传入ISV PID关系

必需

必需

https://docs.alipay.com/pre-open/api_pre/alipay.commerce.iot.mdeviceprod.device.bind

id

绑定关系id

id来源于要绑定isv的支付宝账号PID

必需

必需

绑定商户

type

COMMON_MERCHANT

在principal中传入商户 PID关系

必需

N/A

id

绑定关系id

id来源于要绑定商户的支付宝账号PID

必需

N/A

绑定门店

type

COMMON_SHOP

在principal中传入门店关系

必需

N/A

id

绑定关系id

id来源于要绑定门店的shop id,shop id在蚂蚁开放平台创建门店分配的id

必需

N/A

绑定学校

school_stdcode

绑定关系id

在扩展字段ext_info中的传入school_stdcode及其对应id值,绑定关系id来源于学校组织机构代码证,ext_info":"{\"school_stdcode\":\"2088200135791293\"}"

必需

必需

IOT日志回传参数:

分类

传参需求

Key

Value

value来源及使用说明

支付设备

门禁核身

IOT日志

刷脸mdap日志

facemode

人脸sdk工作模式

人脸SDK根据刷脸使用的场景设置的刷脸参数,业务类型:facepay支付/entrance门禁/sign考勤/采集capture

必需

必需

ftoken

刷脸token

人脸sdk刷脸成功后返回biztid+时间戳组合的字符串

必需

必需

cameraSN

摄像头sn

人脸sdk读取机具设备中的摄像头sn

必需

必需

biztid

设备唯一标识

人脸sdk读取iot sdk中的唯一表示

必需

必需

deviceSN

设备序列号sn

人脸sdk读取设备中的sn

必需

必需

uid

刷脸核身通过的用户uid

用户uid随人脸特征加载到机具端人脸SDK

必需

必需

 

2.2.2开放平台产品对接:

   服务商对接第三方应用授权模式。接入流程:

第一步:签约完成后,会创建应用

服务商登陆开放平台获取应用id(即appid)上传商户私钥,保存支付宝公钥,配置应用网关地址。

第二步:下载支付宝服务端SDK。

        点击下载

第三步:开发以下产品

1. 第三方应用授权调用

服务商开发第三方应用授权,通过授权链接或者授权二维码提供给学校,学校签约商户代扣完成后,登陆签约商户代扣的支付宝账户给服务商授权。服务商获取授权app_auth_token。

  • 准备:

1).学校支付宝账户签约商户代扣产品、委托提现,由支付宝BD同学签约。

2).服务商应用授权appid由支付宝BD同学挂接口包。

3).学校签约协议生效后,用签约账户做第三方应用授权

第三方应用授权接入指南:

https://docs.open.alipay.com/20160728150111277227/intro

[注意]授权app_auth_token服务商本地要保存好,在做交易的时候,此参数在第三方授权调用模式下,需要通过交易接口请求给支付宝。

2.学生刷脸认证签约集成

  • 非远程开户(个采):学生/教工/家长可即刻可采集孩子人脸。使用对象学生/教工/家长。

1).流程:学生/教工/家长登陆支付宝账户,通过ISV小程序跳转到支付宝刷脸认证小程序,对学生进行身份确认,通过认证机构进行刷脸认证,认证通过,用本人支付宝账户签约免密支付,或者学生没有支付宝账户,创建支付宝账户,并与家长支付宝账户进行绑定,开通免密支付。

2).准备: 联调用户数据。(学校入驻信息、用户信息)

3). 前端小程序:isv调用支付宝的刷脸认证小程序组件,然后跳转到isv的免密支付签约小程序。参见个采小程序开发指南

        4). 服务端:学生认证及人脸特征文件获取:服务商需按照团餐刷脸付接口文档中身份认证接口规约实现学生认证服务接口和人脸特征码通知参见团餐刷脸付接口文档中 (人脸特征码接口

  • 远程开户(集采):孩子刷脸认证完成后,支付宝push开通刷脸支付消息,  然后,开通刷脸支付并完成签约。使用对象:ISV工作人员。

1).流程:家长收到学校短信通知孩子采脸,ISV现场工作人员登录到远程开户小程序,选择姓名、采脸,进入支付宝刷脸认证小程序,学生进行采脸。采脸完成后,支付宝push开通刷脸支付消息给家长,点击立即开通,进入到确认信息页面,确认学生身份,确认通过,进入ISV签约小程序,开通刷脸支付。对于有支付宝账户的学生,本人账号签约免密支付。对于没有支付宝账户的学生,建立支付宝账户,与家长支付宝账户建立绑定关系,并签约免密支付,即远程开户。如果信息错误,家长授权拒绝,支付宝通知ISV授权状态。

2).准备: 联调数据准备(学校入驻信息、用户信息)。

3).前端小程序:小程序互相跳转实现代码参见远程开户接入指南 

3).服务端:

【注意】当学生信息有误的时候,会出现报错页面,家长远程开户拒绝授权。通过远程开户的‘家长授权拒绝’接口通知ISV。(支付宝通知ISV)参见团餐刷脸付接口文档,对应的交互流程如下‘学生信息错误上报’。见截图

3.生活号与小程序开发

学生认证、亲子账户绑定,签约流程支付宝提供刷脸认证小程序组件,签约由isv提供小程序签约或者H5签约。前端与isv之间通过小程序或者生活号交互。

1).小程序开发:详见小程序开发文档 

2).生活号开发:详见生活号接口文档。如仅仅是开通生活号功能,菜单都采用H5跳转或者小程序实现,可以不用开发相关接口,直接在签约后登录“fuwu.alipay.com”完成相关配置即可。

4.刷脸算法集成(厂商开发客户端接口,支付isv开发服务端接口)

第一步:获取刷脸所需的设备信息

第二步:刷脸初始化完成可用性判断

第三步:唤起人脸采集,获取ftoken。

第四步:调用支付接口——alipay.trade.pay接口

请参见刷脸算法:客户端集成指南服务端集成指南

刷脸算法集成目前由刷脸产品统一协调。可以联系王庭或者拂弦协调联调支持同学。

人脸sdk传参说明:

5.支付集成:(支付ISV开发)

1.代扣接口开发:详见代扣开发指南。(说明:支付宝认证组件不包含商户代扣协议签约,因此ISV需要自己开发。)

2.相关接口:1.第三方应用授权

3.如果代扣不成功,请按照实际业务需求重试1-2次,当天晚上10点或者适当时间再对扣款失败的订单发起批量扣款。为防止恶意消费,学校可以建立黑白名单,进行控制。

4.线下刷脸代扣调用商户代扣扣款接口---alipay.trade.pay

       ***接口传参说明:

使用isv第三方应用授权appid发起接口请求,同时传入,商户授权token,app_auth_token。

extend_params/sys_service_provider_id参数中传入isv签约返佣协议账户的pid。

alipay.trade.pay (统一收单交易支付接口)接口中传参:

auth_code: 扫脸成功后获取ftoken;terminal_params:机具签名(IOTSDK交易加签结果,参照样例); agreement_no:协议号,通过agreement_params/agreement_no;product_code:产品码,传入"GENERAL_WITHHOLDING";store_id:商户门店编号(如果有创建门店要求,需要必传入。以门店维度下面的机具返佣有关。);total_amount: 订单金额,交易加签时涉及到金额加签,需要传入此金额。加签金额的格式、金额一定要保持一致。

*terminal_params参数,取值为IOTSDK生成的业务签名值。IOT加签方法:https://alipay.open.taobao.com/docs/doc.htm?articleId=109629&docType=1#s1。签名样例:

1

{"terminalType":"IOT","signature":"ERKDmm3fhGCvZZP0ob5gHUiTuTaFbB5gjjYBYxdOVwezN+sSJdV+uJy4kegYC6RQDzOLx/vbLYPoZTzxPXsVAFZgCg==","apdidToken":"iBfdgYKtgBObNOOybNHkaItG2EQkY3bovzvKDqtyWKVQ9tfvZAEAAA==","hardToken":"0601469C6568AEB7BA92FCC21DF8C766CC8A78A5BF874FC509A2D262B8B5FB9E35FF","time":"1533061133","bizCode":"11000100020002200020","bizTid":"01010020015XmMUS5BmWl39qqatmTLukjswaEaSYJADU2EQ2kb3AjcY","signedKeys":"authCode,totalAmount,apdidToken,hardToken,time,bizCode,bizTid"}

        注意:由于交易报文协议为JSON格式,在构造terminal_params属性时,必须以字符串形式,因此,务必注意子json字符串的表示格式(需要转义)。

alipay.trade.pay (统一收单交易支付接口)接口中增加IOT扩展参数,里面传入:

       *2.0 接口,从接口参数上传入该参数:business_params; json 格式:key 为:iot_pay_action

       *1.0 接口,在接口参数上传入该参数:business_info; json 格式:key 为:iot_pay_action

       * 对应value 定义如下: iot_pay_action: online_face_pay - 在线刷脸支付、local_face_pay - 本地刷脸支付、nfc_pay - 刷卡支付、bar_pay - 扫码支付

3.开发详细说明

1).接口调用模式:

      调用扫脸接口与支付接口的appid需要保持一致,支持开发者调用和第三方应用授权调用两种模式。

      场景一:支付接口调用时为isvappId+商户app_auth_token。

 

调用扫脸初始化接口(zoloz.authentication.customer.smilepay.initialize)时也需要使用同样的isvappId+商户app_auth_token。

 

注意商户给isv授权前,一定要保证商户appid,ISV的授权appid,已挂完扫脸功能包,否则,有一方没有挂扫脸功能包,调用接口时会报40006,接口权限不做。必须要重新给ISV做次应用授权,app_auth_token才会有扫脸初始化接口权限,否则调用接口会报40006,接口权限不足。

 

同理,如果调用接口报40006错,isv这边也可以留意下使用的app_auth_token前8位,这个是年月日。

 

如果在isvappid挂扫脸功能包之前,则令牌肯定没有扫脸功能,调用接口报

 

如果在isvappid挂扫脸功能包之后,则可能授权时isvappid还没有挂扫脸的包,需要联系支付宝客户经理挂扫脸接口包并重新授权。

 

重新授权是敏感操作,服务端同学最好先摸清自己系统环境,明确商户重新授权后令牌会发生变化,并且线上在使用的令牌也会跟着更新之后,在做重新授权的操作,否则可能会导致线上接口调用失败的问题。

     场景二:支付接口调用时为商户appID。

调用扫脸接口也同样使用商户的

注意保证商户的账密体系安全,不能在客户端保存商户账户密钥信息。

   【特别注意】:是isv账号下可以有多个应用,即使是同一pid下的不同appid,商户分别对不同的appid做了应用授权,一个用作扫脸,获取的ftoken在另一个拿去支付也不行。

如:ISV同一个支付宝账号A下面有两个appid(a,b).商户S分别授权,则A拿到商户令牌aToken、bToken。扫脸时a+aToken,调用成功获取Ftoken(支付时使用,类似用户付款码),支付时b+bToken+Ftoken调用失败。原因就是ftoken是应用a替商户生成的,只能a替商户核销。则改造方案就是统一替换成一致的调用方式。

4.线上验收

线上验收包括整体验收、功能验收、数据验收、

整体验收(IOT解决方案接口人验收)

1.ISV或厂商寄送样机到支付宝,寄送地址和联系人在钉钉上确认

2.ISV或厂商提供自测报告,邮件发送到iot_campus@service.alipay.com,待内部完成验收确认

3.验收问题修复

4.最终验收确认

验收checklist

功能验收(行业产品PD、BD同学验收) 

线上功能验收

1.线上学生认证刷脸、签约功能验收

2.支付验收

产品提供验收标准。

数据验收(BD同学、IOT解决方案、行业解决方案等人参与验收)

1:ISV提供机具人脸交易信息: 提供设备SN、支付宝交易号、内/外部订单号、物料ID(Item_ID)、设备加签接口及其参数,通知在钉钉上。

2:验证内容:a:签名验证。b:交易验证。c:IOT数据验证。d:交易保障验证。e:返佣验证。

备注:交易验证,会提供最新的验收checklist,注意该文档不断更新补充中,且会更新标题的版本号K12一脸通行checklist_v2.1

目前是采用人工参与验收,未来会提供云端自助验收入口,由支付宝产生验收反馈报告。

5.售后保障

1.上线后出现技术问题,请走售后保障流程:

在线IM(保证处理时效,工作日9:00-18:00):https://cschannel.alipay.com/newPortal.htm?scene=mt_zczx打开链接输入pid,系统识别大商户,自动分配值班技术同学支持。

技术邮箱(保证处理时效,工作日9:00-18:00,解决上线后疑难杂症):techservices@alipay.com。

宕机等故障反馈值班手机:183-6885-2842 (工作日18:00-次日9:00,节假日全天)。

2. IOT售后保障流程:

邮箱:iot_campus@service.alipay.com (保证处理时效,工作日9:00-18:00,解决上线后疑难杂症)

3. 移动端维保平台:

支付宝app搜索“蚂蚁维保中心”,

6.FAQ:

1).扫脸FAQ:查看

2).Q:alipay.commerce.educate.scene.token.create(教育场景token生成处理器) 接口生成的token作用?

      A:用于远程开户时,通过isv小程序采集列表跳转到扫脸认证组件,isv调用支付宝api接口生成token。isv小程序跳转到支付宝扫脸认证小程序时传给支付宝,作为用户身份校对。

3).Q:文档中页面查询token的接口alipay.commerce.educate.sign.token.query(token查询接口)中的token是否为同一个值,作用是什么?

      A:支付宝账户注册完成跳转回isv采集列表小程序,支付宝提供token查询api接口,用于确认当前用户身份。

4).Q:从刷脸认证组件跳转到isv小程序时,是否需要传递token,获取方法?

      A: 需要,通过页面查询token的接口alipay.commerce.educate.sign.token.query(token查询接口)获取token。

5). Q:家长拒绝通知使用场景?

      A:远程开户的‘家长拒绝’接口(支付宝通知ISV),在学生信息发生错误时调用。

6).Q:家长拒绝授权消息可能存在积压或者消息到达先后顺序不同,即家长先点击同意授权(下发人脸特征)开通后,又点击拒绝授权开通,isv应如何判断?

      A:isv应以同意授权为准,忽略拒绝授权。

7).Q:isv如何将家长与孩子的信息建立关联关系,相互绑定?

      A:认证接口没有直接返回家长的uid。支付宝认证完成后跳转到ISV签约页面时,ISV可以根据页面token查询接口查询到当前被操作孩子的uid、身份证号,而家长签署免密支付获得家长的uid。即通过cert_type, cert_no, user_id字段实现关联绑定。

8).Q:小程序唤起免密签约组件调用方法?

      A:https://docs.open.alipay.com/10605 见2.2.2小程序代扣签约接口。

 

FAQ

关于此文档暂时还没有FAQ
返回
顶部