嫣安  

1.简介

RSA 是一种非对称的签名算法,即签名密钥(私钥)与验签密钥(公钥)是不一样的, 私钥用于签名,公钥用于验签。

在与支付宝交易中,会有 2 对公私钥,即商户公私钥,支付宝公私钥。

商户公私钥:由商户生成,商户私钥用于对商户发往支付宝的数据签名;商户公钥需要上传至支付宝,当支付宝收到商户发来的数据时用该公钥验证签名。

支付宝公私钥:支付宝提供给商户,当商户收到支付宝发来的数据时,用该公钥验签。 

 

2.流程

 a. 移动端用商户私玥签名,将订单数据传给支付宝客户端,支付宝客户端将订单数据传给支付宝服务器,支付宝服务器根据订单数据中的商户信息,用商户上传的商户公钥验签,成功后进行支付操作;

b. 用户支付成功后,支付宝服务器用支付宝私钥签名回调数据并回调商家服务器(回调URL),同时支付宝客户端回调商家客户端;

c. 商家服务器用支付宝公钥验签,成功后更新商家订单状态等。

 

3、具体操作

到支付宝官网:注册帐号,并申请。

下面讲的是申请好之后的操作。登录成功之后,  店家我的商家服务—在页面的下方找到——>签约管理—>找打 移动支付—–>点击下载集成文档—>跳到新的页面,在页面下方—>找到下载开发包,下载移动支付即可。然后解压出来之后一般会得到三个文件夹。

这个时候要打开文件名为:  支付宝钱包支付接口开发包2.0标准版的文件。打开之后有一个Demo 文件。打开Demo文件。里面会有三个文件夹:

第一个 openssl; 第二个 服务端 Demo,第三个 客户端demo. 这个时候,我们需要关心的是  openssl 文件与 客户端Demo 的文件。

在第三个Demo文件中有iOS版与Android 版的Demo.但是你要部署运行的时候,会发现不能运行成功。在项目主文件里面这样一段代码:

//商户PID

public static final String PARTNER = "";

//商户收款账号

public static final String SELLER = "";

//商户私钥,pkcs8格式

public static final String RSA_PRIVATE = "";

//支付宝公钥

public static final String RSA_PUBLIC = "";

因为这些,都是需要根据商户注册的信息来填写的。所以就算下下载了Demo,也没有用。下面讲的就是如何获取私钥与支付宝公钥。

还记得刚刚我们加压之后的openssl文件嘛?获取私钥与公钥的方法就在里面:

首先打开openssl文件:以下是文件打开顺序: openssl–>bin –> 双击 openssl.exe文件。这个时候会出现一个命令框:(首先要说明的是这个文件是在Windows系统下打开的)要是苹果系统好像不行.接着继续往下说:

打开命令框后:输入第一行命令 ,生成私钥,如下:

      genrsa -out rsa_private_key.pem 1024

按回车键,接着输入第二行命令,生成公钥:

     rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

按回车键,接着输入第三行命令,将RSA私钥转换成PKCS8格式

     pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt

 

执行完这三行命令后,就生成了两个以:.pem 结尾的文件。这就是我们生成的商户公钥与私钥.文件位置就在: bin  目录下。当然我们打不开这两个文件。但是我们可以复制一份到桌面,改成Txt文件打开即可。因为我们需要的只是里面的字符串,记住当我们引用这两个长的字符串的时候,需要注意的是:字符串,不能包括,换行,空格,以及其他误加的字符。所以复制的时候一定要小心。

当然私钥就是我们需要的商户私钥了,如何获得支付宝公钥呢:回到支付宝首先,首先登录,

一:  点击“查看PID|KEY”,在新打开的页面(https://b.alipay.com/order/pidAndKey.htm ),可查看到签约支付宝账号、合作者身份ID(PID.

二:输入支付密码,查询key、支付宝公钥。

三:上传RSA公钥,在“合作伙伴密钥管理”下,点击“RSA加密”后的“添加密钥”,把自己的公钥复制进去。注意不能有空格,换

行之类的。

四:点击确认上传,若是提示上传成功。则就是成功。

这个时候就可查看支付宝公钥了。

至此,将对应的私钥与公钥填到相应位置我们的Demo  就可一运行了。然后集成到项目中即可。

posted on 2016-06-21 11:55  gd_y  阅读(928)  评论(0)    收藏  举报