Antom, leading provider of tailored payment solutionsAntom, leading provider of tailored payment solutions

线下充值集成

一、业务流程

image

流程说明:

1. 充值码 - 打开钱包APP,选线下充值服务,钱包后台线上⽣码展示于APP中;

2. 充值受理 - CVS向钱包后台发起充值咨询交易,检查交易合法性,再发起充值申请交易,交易完成后

推送交易结果⾄钱包端及返回交易结果级CVS;

3. 清算处理 - CVS⽣成对账⽂档并送⾄钱包,钱包后台以便利店提供的交易结果为准进⾏核对,出现便

利店交易结果单边时,系统进⾏补偿充值处理,出现钱包端交易单边时,为资损处理;于约定清算⽇期由

便利店进⾏资⾦拨款,钱包后台收银⾏账单后进⾏应收账核销;

二、接口和参数信息说明

  • 建议参考example里各API的request, response
  • 文档:Topup Integration Guide/API/AlipayIntlAPI_1.0.1/Overview.htm
  • 所有Request都有requestMsgId,建议使用UUID,用于request的唯一标示

三、系统交互

image

四、充值逻辑

image

五、签名及验签

参考链接:https://global.alipay.com/docs/ac/gr/signature

数字签名使用简介:客户端和支付宝必须在进行API调用之前交换RSA密钥,并且RSA密钥的长度必须为2048位。当对Alipay进行API调用时,客户端使用RSA私钥对API请求进行签名。收到API请求后,支付宝将使用客户端的RSA公钥来验证签名是否与API请求的内容匹配。同样,当客户端收到API响应时,强烈建议客户端使用支付宝的RSA公钥来验证API响应的签名。

1、签名生成步骤

1.1 通过OpenSSL或者其他工具获取RSA密钥对,分别生成后缀为pem格式的私钥和公钥,将公钥上传到Alipay服务器交换公钥以便进行后续签名验证。

a、对于Java开发人员,需从控制台中pkcs8私钥输出中删除页眉、页脚、回车符和空格。b、使用openssl创建私钥后,如果使用java,则需要将私钥转换为pkcs8格式。如果使用.net或者php,则无需将私钥转换为pkcs8格式。)

1.2 提取要签名的request请求内容,确认参数和格式无误(很重要)。

image

1.3 使用SHA1withRSA算法散列JSON内容。然后,使用客户端的RSA私钥对值进行签名以获得签名。为了获得更高的安全级别,RSA密钥对的长度必须为2048位。

1.4 通过Base64编码进行签名。

1.5 使用签名之后获得的字符串作为Signature参数值。与请求的json数据合并成整个API请求。

1.6 java端签名生成样例代码参考:(https://global.alipay.com/docs/ac/gr/signature#6a947849

2、签名校验步骤

2.1 使用正则表达式而不是JSON对象,将完整的响应内容分为两部分,响应JSON字符串和签名字符串。

image

2.2 通过使用SHA1算法散列响应JSON字符串以获得消息摘要。

2.3 使用公钥进行解密签名到消息摘要。

2.4 比较在步骤2和步骤3中获得的两个消息摘要。如果摘要相同,则表明已签名的数据尚未更改。

2.5 java端签名校验样例代码参考:(https://global.alipay.com/docs/ac/gr/signature#895424b6

六、对帐文件

Item

Description

参考文档

Settlement Requirement.pdf

例子

SETTLE_CVS_5C5XSR3USG0CQJ05MOP20200101_01.csv

档案交收方式

SFTP

路径

/upload/<tntInstId>/settlement/

档案名

SETTLE_CVS_<clientId><currency><date>_<Seq>.csv.gpg

档案交收时间

每自然日早上7:00前完成档案上载

文件加密

1. 双方都产生公钥和私钥

2. 双方交换公钥

3. 使用私钥和支付宝的公钥对清算档进行加密加密csv文件

4. 把加密的xxx.cvs.gpg上传到sftp

 

七、小票要求

八、測試用例