支付宝支付流程和RSA算法原理

随商电商系统2018-10-30 10:01:25电商资讯

本文主要阐述了以下两点:支付宝的三种支付流程和RSA加密算法的原理。

支付宝的三个支付流程

1.现在消除了所有在服务器上完成的支付逻辑处理。原则是将电子商务应用程序的所有信息提交给电子商务服务器,然后电子商务服务器与支付宝服务器进行交互。

2.所有支付逻辑处理是电子商务APP呼叫移动电话的支付宝客户端,然后支付宝客户端和支付宝服务器相互交互。

原理是电子商务APP向电子商务服务器发送请求,然后电子商务服务器生成订单信息并将其返回给电子商务APP。当电子商务APP进行支付时,有必要判断用户是否有支付宝客户端。如果没有,您无法付款,提示用户下载支付宝。如果有,则拨打支付宝客户端进行支付。然后,支付宝服务器将成功付费的数据反馈给电子商务应用程序和电子商务服务器。

3.所有支付逻辑处理,处理电子商务本身的APP,但要集成支付宝的智能SDK,这是JAR包,这种方法最常见的原则是:电子商务应用程序向服务器发送请求,电子商务商务服务器生成订单信息返回电子商务应用程序后,当电子商务APP支付时,可以调用集成支付宝的智能SDK,然后智能SDK完成支付,支付宝服务器将提供成功付费数据到电子商务APP和电子商务服务器。 。

无论哪种模式涉及三个重要信息

首先,订单数据

第二,用户帐户密码

三,电子商务服务器支付宝账号,电子商务服务器的IP地址

需要了解的事项:

付款成功后,支付宝会向电子商务应用程序和电子商务服务器发送通知,主要是为了让用户看到电子商务成功付款的提示,电子商务服务器立即发货

支付宝服务器向电子商务服务器发送通知频率:2m,10m,10m,1h,2h,6h,15h。如果支付宝服务器向电子商务服务器发送7个通知,电子商务服务器不告知支付宝服务器“我收到它”,支付宝将钱退还给用户的支付宝。此规则类似于Socket的三次握手原则。记住电子商务服务器获得的数据以告知支付宝服务器。在支付宝的智能SDK中,最重要的方法是PayDemoActivity。最重要的方法是pay()方法。

RSA加密算法原理

众所周知,支付宝使用RSA算法进行数据加密。

在RSA加密算法中,仅使用一些简单的数学知识,例如素数,素数,指数运算和模运算。因此,我们还需要了解这些概念。

素数

素数,也称为素数,是指除了1之外不能被其他自然数整除的数字,以及大于1的自然数中的整数本身。这个概念,我们在初中学到的,即使是在小学,这里也没有更多的解释。

相互素数

百度百科全书的解释是,只有一个公因子的两个数字称为素数。维基百科上的解释是:相互质量,也称为相互质量。如果N个整数的最大公因子是1,那么N个整数被认为是素数。

判断素数的常用方法如下:

两个不同的素数必须是素数。例如,2和7,13和19.

一个素数,另一个不是它的倍数,这两个数字是素数。例如,3和10,5和26.

两个相邻的自然数是素数。如15和16.

两个相邻的奇数是素数。如49和51.

较大的数字是素数的素数。如97和88.

小数是素数,大数不是小数的倍数。两个数字是素数。例如7和16.

2,任何奇数都是素数。例如2和87.

1不是素数或复合数。它是具有任何自然数的素数。如1和9908.

扭曲和分裂。

指数运算

指数运算也称为功率计算,计算结果称为功率。 Nm表示n乘以m倍。将nm作为功率的结果称为“n的n次幂”或“n的m次幂”。其中n称为“基”,m称为“索引”。

模块化操作

模运算是余数运算。 “模块”是“Mod”的音译。与模块化操作密切相关的概念是“一致”。在数学上,当两个整数除以相同的正整数时,如果获得相同的余数,则两个整数是全等的。

两个整数a,b,如果它们除以正整数m,则余数相等,则a,b对于模m是全等的,表示为:a≡b(mod m);读作:与b模式m的一致,或者,a和b与模m的一致。例如:26≡14(mod 12)。

公钥和密钥生成

假设Alice希望通过不可靠的媒体从Bob接收私人消息。她可以通过以下方式生成公钥和私钥:

随意选择两个大素数p和q,p不等于q,并计算N=pq。根据Euler函数,找到r=(p-1)(q-1)来选择小于r的整数e,并在模r上找到e的逆元素,命名为d。 (当且仅当e和r为素数时,模数元素才会存在)破坏p和q的记录。 (N,e)是公钥,(N,d)是私钥。 Alice将她的公钥(N,e)传递给Bob并隐藏她的私钥(N,d)。

它也可以使用工具生成:

使用openssl为RSA(公共和私有)生成密钥对。

RSA功能:使用公钥加密的字符串只能使用私钥解密(请记住,公钥加密字符串不能使用公钥解密);

加密消息

假设Bob想要向Alice发送消息m,他知道Alice生成的N和e。他使用首先与Alice商定的格式将m转换为小于N的整数n。例如,他可以将每个单词转换为单词的Unicode代码,然后将这些数字连接在一起形成一个数字。如果他的信息很长,他可以将信息分成段,然后将每个段转换为n。使用以下公式,他可以将n加密为c:

Ne≡c(mod N)

计算c并不复杂。在Bob计算c之后,他可以将它传递给Alice。

解密消息

在Alice收到Bob的消息c后,她可以使用她的密钥d进行解码。她可以使用以下公式将c转换为n:

Cd≡n(mod N)

获得n后,她可以恢复原始信息m。

解码原理是:

Cd≡ne·d(mod N)

并且ed≡1(mod p-1)和ed≡1(mod q-1)。费马的小定理证明了(因为p和q是素数)

n e·d≡n(mod p)和n e·d≡n(mod q)

这表明(因为p和q是不同的素数,p和q是相互素数)

n e·d≡n(mod pq)

签名消息

RSA还可用于签名消息。如果A想要将签名的消息传递给B,她可以为她的消息计算消息摘要,然后用她的私钥加密散列并“签名”它。添加到邮件的背面。此消息只能使用她的公钥解密。在获得该消息之后,B可以用A的公钥解密散列值,然后将该数据与他为消息计算的散列值进行比较。如果两者匹配,则他可以知道发送者持有A的密钥,并且该消息未在传播路径中被篡改。

您的公钥与支付宝公钥之间的互动:

当您在支付宝的官方网站上创建应用程序时,支付宝会要求您将公钥交给支付宝,支付宝也会给您一张公钥。

加密和解密付款信息时:

首先使用base64加密此信息,然后使用支付宝的公钥对其进行加密,最后使用您的私钥加密您的支付信息,然后将其发送到支付宝服务器。以同样的方式,在解密时:首先获取Alibao加密的字符串,然后用你的私钥解密,然后使用支付宝的公钥解密,最后用base64解密,获取支付信息;

最后,上图用于帮助理解服务器和服务器如何使用RSA算法加密数据以进行交互。


随商信息技术(上海)有限公司 b2b2c多用户商城系统是基于PHP技术的企业级电子商务平台系统,系统支持平台自营、招商加盟和多商家入驻、集成微信商城、移动端APP商城、微信小程序于一体。公司主营业务包含商城系统定制开发、新零售系统解决方案、电商平台系统定制开发、商城网站建设服务等等,随商为大、中、小企业提供一个安全、高效、强大的电子商务解决方案,协助企业快速构建、部署和管理其电子商务平台,拓展企业销售渠道,致力于推动PHP技术和电子商务行业的发展而不断努力。

文章关键词  
电子商务网站制作
商城网站建设

除了供应标准网上商城系统之外,我们还开源商城源码,为您提供电商平台开发定制服务

随商全新版PHP企业级电商平台系统,以客户需求为己任,提供免费网店系统源码给用户体验,为国内客户特别是上海周边客户提供电商平台及网上商城网站建设服务,您的商城开发建站需求,我们来实现!

网上商城建站
包含微信商城网站建设及小程序商城建设等一站式电商系统建站服务,java商城php商城 两种语言。
APP开发
提供APP商城开发,包含Android App 、iOS App等等, 原生APP品质
手机商城开发
提供APP商城、微信商、小程序、手机H5商城搭建及二次开发
电商平台开发
作为电子商务系统提供商,以自研的商城模板为企业提供专业的电商平台系统搭建服务

马上搭建自己的电商平台