关于支付

因单位项目需要,前段时间接触网上支付相关的开发较多,工作暂告一段落,抽空将自己在这一段的学习总结总结:

一、基本术语

    支付平台:诸如易宝、支付宝、银联、块钱等第三方平台。

    业务平台:一些有支付需求的需要接入支付平台的网站或平台。

    商    户:一般情况下,业务平台在接入支付平台前需按支付平台要求注册商户。注册并审核通过后才可正常使用支付平台提供的接口服务。

    数据级回调:支付平台完成支付请求后,需要回调业务平台后台,通知本次支付请求的结果,方便业务平台对本次请求做状态记录。

    页面级回调:业务平台发起的支付请求结束后,支付平台需要将页面重定向至业务平台指定页面。  

二、支付接入流程

    1)、注册审核:业务平台接入支付平台需事先在支付平台注册,填写相关注册信息。然后等待支付平台审核,审核一般包括对所填写注册信息的属实性审核和公司资质的审核。审核通过后商户可获得关于支付请求时的一些鉴权信息,比如商户ID、密钥和签名方式等(此处只打比方,具体信息可能因不同支付平台而不同)。

   2)、开    发:一般情况下,开发包括两部分:第一,组装并发送请求信息模块。发送数据请求时,基于数据安全考虑,会对请求数据进行签名,签名的具体情况后续详细介绍。第二,接收支付平台回调模块。包括页面级的回调和数据级的回调。页面级回调一般只需指定一个页面。而数据级的回调需要根据支付平台返回的状态对业务平台的数据状态进行修改。

三、数据交互

   

四、数字签名

    数字签名是保障数据在传输过程中安全的一种机制。通过在数据单元上附加数据,或对数据单元进行秘密变换,从而使接收者可以确认数据来源和完整性。简单说来,数字签名是防止他人对传输的文件进行破坏,以及确定发信人的身份的手段。

    各个支付平台所采用的数据签名方式不尽相同,常用的有MD5、DSA、RSA签名,但各签名方式原理大概相同,只是对签名字符串所采用的加密算法不一样。大概流程是这样的:

    请求时签名:将请求时所传递的业务数据按约定格式和顺便排列,并后缀签名密钥形成待签名字符串,然后采用所选择的的加密方式对待签名字符串进行加密,形成签名字符串。将签名字符串作为一个请求参数同业务参数一起传递给支付平台。支付平台拿到数据后,同样将业务参数和密钥拼接后形成的字符串用相同的算法进行加密,将所得字符串与传递过来的签名字符串进行对比,方可知道数据在传递过程中是否被恶意篡改。

    通知返回时签名:交易结束后,对返回的结果参数同样也得签名。其原理与请求时签名是一样的,只是方向不同。不做详细介绍。

五、各支付平台回调的差异性

    这里重点说一下页面级的回调,从功能实现的角度讲,页面级的回调貌似不是那么重要,但从用户体验和流程的完整性来说,这一步是很有必要的。在开发过程中发现,回调是一个较为麻烦的问题,原因是各个支付平台页面级回调的方式和时机是不同的,这显然会给我们的开发带来一定的难度和工作量。下面详细说说各平台的回调的机制:

    支付宝即时到账交易:支付宝请求交易时,需要业务平台传递两个回调地址。一个为后台数据回调地址,另一个则是交易结束后页面重定向的url。在交易完成后,支付宝平台会异步的进行回调业务平台。

    易宝银行卡支付:易宝的页面级回调和数据级回调是用同一个回调地址回调业务平台两次实现的,回调时会有一个参数标示回调的级别。

    快钱支付:快钱支付完成后,先进行数据级的回调,要求业务平台数据处理结束后,写回支付平台处理状态和页面跳转地址。




评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值