文档中心 > 校园产品介绍与接入指南

商户代扣集成

更新时间:2020/04/21 访问次数:2806

商户代扣及先享后付集成

1.商户代扣集成

1).代扣接口开发:详见代扣开发指南(参见商户代扣2.0集成方案);

2).相关接口:1.第三方应用授权;2.商户代扣接口列表

3).线下刷脸支付调用商户代扣扣款接口---alipay.trade.pay传参说明:

分类

传参需求

Key

Value

value来源及使用说明

支付设备

门禁核身

接口连接

 

支付收单交易

通用需求

extend_params/sys_service_provider_id

isv签约返佣协议账户的pid

 传入isv签约返佣协议账户的pid

必需

N/A

 

统一收单交易接口—(alipay.trade.pay)

subject

商品名

格式为:商品名称 “人物(名字脱敏处理)同学XXX食堂+早/午/晚餐+时间”eg:"张XX同学一食堂午餐2019-10-28 12:39"

必需

N/A

terminal_id

商户机具终端编号

终端设备号(TERMINAL_ID)必传。
建议传入:设备sn号。

必需

N/A

agreement_params/agreement_no

协议号

通过agreement_params/agreement_no

必需

N/A

product_code

GENERAL_WITHHOLDING

产品码,传入"GENERAL_WITHHOLDING"

必需

N/A

out_trade_no

商户订单号

必传,保证唯一性

必需

N/A

advance_payment_type

支付模式类型

支付模式类型,若值为ENJOY_PAY_V2表示当前交易允许走先享后付2.0垫资。是否垫资,由ISV或者商户根据实际情况选用。若垫资则固定传参“ENJOY_PAY_V2 ” 视情况而定

必需

N/A

刷脸代扣

auth_code

facetoken字符串

人脸SDK生成的facetoken字符串

必需

N/A

terminal_params

Iot sdk加签字符串

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

必需

N/A

scence

不用处理

N/A

N/A

iot_pay_action

local_face_pay

json 格式,在收单扩展字段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

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

,nfc_pay - 刷卡支付

必需

N/A

注意:

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

2).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字符串的表示格式(需要转义)。

2.先享后付集成

       1).准备:服务商根据实际情况决定垫资账户,此产品需由bd签约垫资保付协议。

       2).通过上面的商户代扣接口(alipay.trade.pay)传入垫资参数新增:

  • advance_payment_type,用以指定本次扣款是否需要垫资,需要则传入:ENJOY_PAY_V2。当满足垫付条件,则通过垫资账户扣款。
  • 响应结果和异步通知,新增参数:advance_amount, 改值代表本次交易,垫资主体出资金额

       3).还款:用户主动还款和追缴。

  • 用户主动还款:a.登录钱包搜索“欠费管理”小程序,可查到欠费订单,进行还款。b.当发生垫付的时候,支付宝push追缴信息到用户支付宝钱包,用户可点击push内链接还款。
  • 还款通知:还款后,支付宝通知服务商,通知到调用交易接口的appid的应用网关地址上。垫资还款接口参见API列表。支付宝push追缴信息,还款,服务商最好本地维护垫资记录。垫资规则与支付宝保持一致,本地设立垫资规则,垫资次数,垫资金额。
  • 还款截图如下

       

     

      4).服务商发起商户代扣业务前,需要把交易记录下来,根据实际情况在一定的时间内发起代扣请求。

      5).垫付产品接入指南及开发文档:先享后付接入指引

3.建议处理逻辑

  • 在有网情况下,机具端在人脸匹配成功后,通过uid判断用户的签约状态及协议号、黑名单机制,都通过之后,机具端提示“消费成功可用餐”,然后发起代扣支付;其中一个判断因子不通过,需要使用其他支付方式。
  • 无网情况下,机具端在人脸匹配成功后,通过uid判断用户的签约状态、黑名单机制,都通过之后,机具端提示“消费成功可用餐”,机具端中收银APP必须要存储消费订单,然后再将消费订单及时同步到校园系统,网络正常的情况下要立即将订单发送到服务端进行扣款,禁止存储在机具上后再批量发起。
  • 在没有前置服务器的情况下,机具端要缓存人脸特征库、用户的签约状态及协议号、黑名单,保持实时或者每天有网的情况下及时更新。
  • 新上线学校,首次使用的用户,可以不用判断黑名单,但需要检查用户的签约状态及协议号,然后再发起支付请求。
  • 解约方式:有同步和异步,这里我们推荐使用异步解约方式。异步解约是用户在支付宝app中提交解约申请,此时支付宝app中显示解约中状态,而支付宝服务端通知ISV,ISV查询用户的黑名单、签约协议、欠费信息等业务逻辑,根据实际情况调用解约接口,解约成功后,支付宝app中显示已解约。
  • 垫资还款通知:此通知是通知到基于开放平台应用网关地址,上传应用网关后,需要在开放平台订阅消息通知。然后会收到还款通知信息。
  • 垫资逻辑:在支付接口中,出入垫资参数,在扣款的时候,支付宝判断用户支付宝账户是否可以付成功,如果支付不成功,并且在符合垫资规则,会代扣垫资账户的款。从而代扣订单支付成功。
  • 在校园系统中为用户设置一个最大的欠费上线金额,记录用户的欠费信息,同时建立黑名单机制,根据欠费次数、欠费总金额来建立黑名单:
    • 对于触发规则的用户,则放入黑名单,同时黑名单需要存储在机具端和服务器端,两边的黑名单需要保持一致
    • 对于欠费的用户,校园系统需要建立追讨机制,每天向欠费用户追讨一次,根据欠费订单进行扣款。
    • 如果欠费用户的欠费订单都已经结清,则将该用户从黑名单中移除
  • 补扣次数建议不超过3次。补扣时间不在3天之内,不能超过15天。对于待支付的订单,支付宝系统内交易订单默认15天关闭,就会无法支付。
  • 异步扣款的模式,对于异步扣款,会涉及到扣款不到的情况,服务商/支付宝为主体进行垫资兜底能力。
  • 发生垫资情况,服务商本地要记录垫资记录,统计垫资次数,垫资金额,垫资规则与支付宝保持一致,根据还款通知信息更新黑名单。

4.FAQ

商户代扣2.0常见问题: https://docs.alipay.com/pre-open/20170601105911096277/mzvgk0

FAQ

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