Android专题移动支付

移动支付探究(app跳转第三方支付)你不得不知道的干货!

2020-10-15  本文已影响0人  千夜零一

移动支付探究

  APP调用微信支付支付宝支付以及银行app支付流程,大体相同,都是通过服务器端获取订单信息返回给客户端,客户端调用第三方sdk进行支付,支付完成后进行同步和异步回调。
APP支付
  APP支付又称移动端支付,是商户通过在移动端应用APP中集成开放SDK调起微信支付模块完成支付的模式。
H5支付
  H5支付主要是在手机、ipad等移动设备中通过浏览器来唤起微信支付的支付产品。一般未安装第三方支付app比如微信/支付宝时,会跳转到下载的H5页面进行提示用户下载应用后进行支付。
  Tips:也可以对接银行服务,调起银行H5界面,进行网页内登陆账号支付操作


第三方支付SDK是什么?

  要想进行移动支付实现,比如app跳转微信/支付宝支付,首先要搞明白第三方的支付SDK都包含什么,哪些功能是你在业务中需要的。
  (1)SDK:英文Software Development Kit 的缩写,即“软体开发工具包”,一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。通俗点是指由第三方服务商提供的实现软件产品某项功能的工具包。通常SDK是由专业性质的公司提供专业服务的集合,比如提供安卓开发工具、或者基于硬件开发的服务等。也有针对某项软件功能的SDK,如推送技术、图像识别技术、移动支付技术、语音识别分析技术等,在互联网开放的大趋势下,一些功能性的SDK已经被当作一个产品来运营。开发者不需要再对产品的每个功能进行开发,选择合适稳定的SDK服务并花费很少的经历就可以在产品中集成某项功能。
  (2)SDK和API的区别
SDK相当于开发集成工具环境,API就是数据接口。在SDK环境下调用API数据。


第三方支付API是什么?

  API,即“应用程序编程接口”,是一些预先定义的函数,目的是作为“介面”沟通两个不同的东西,提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
  自我解析:其实就是别人已经写好的可以实现特定功能的函数,而你只需要根据他提供好的接口,也就是调用他的方法,传入他规定的参数,然后这个函数就会帮你实现这些功能。


支付宝-支付接入(流程)

步骤方法:
(1)下载接入支付宝-支付SDK,并调用到支付宝支付接口;
(2)处理支付宝返回的支付结果;

  Tips:在调用支付宝支付接口前,还需要先生成一个订单,文档中描述时,是将这步也放在客户端来做了,但也可以在服务器端生成这个订单(图中支付宝会在支付成功后通知服务器端,所以在服务器端生成订单的话,可以掌握所有订单,而且也会更安全):。

(3)调用支付宝支付接口,发送订单;
(4)处理支付宝返回的支付结果;

  Tips:其实对于业务来说,这些步骤已经够了,但是有一个安全性问题,不希望接收到的支付结果被截获修改,所以,这就需要在生成订单和处理支付结果的时候做一个安全性校验:生成订单时对数据签名,收到支付结果时对数据进行签名验证,以检验数据是否被篡改过。

(5)采用RSA加密方式做签名验证。

什么是APK签名,为什么APP要进行签名校验?

  apk是安卓应用软件包,apk签名是软件包在安装的时候进行的安全性验证机制。
  apk签名,是Android application package英文缩写,相当于程序的身份识别代码。它是为了确保消息来源的真实性,同时确保消息不会被第三方篡改。于是就产生了apk签名。
  在apk中写入一个“指纹”。指纹写入以后,Apk中有任何修改,都会导致这个指纹无效,Android系统在安装Apk进行签名校验时就会不通过,从而保证了安全性。(防山寨!!!以及后续升级版本使用)


APP安装需要证书支持

  Android App安装是需要证书支持的,我们在Android Studio中开发App时,并没有注意关于证书的事,也能正确安装App。这是因为使用了默认的debug证书(调试版本,非正式版release)。
  在Android App升级的时候,证书发挥的作用就尤为明显了。只有证书相同时,才能对App进行升级。证书也是为了防止App伪造的,属于Android安全策略的一部分。
  另外,Android沙箱机制中,也和证书有关。两个App如要共享文件,代码,或者资源时,需要使用shareUid属性,只有证书相同的App的才能shareUid。此外,如果一个App中申明了signature级别的权限,也是只有和那个App签名相同的App才能申请到对应的权限。

上一篇 下一篇

猜你喜欢

热点阅读