支付宝和微信移动支付的个人总结

本文总结了支付宝和微信移动支付的实现过程。对于支付宝,重点在于生成公钥私钥,签名生成以及调用API的参数构造。微信支付则涉及XML格式数据处理,参数排序签名,统一下单及预支付订单号的获取。两者的签名生成和参数处理是关键步骤。
摘要由CSDN通过智能技术生成

今天在看了移动支付的文档,对整个流程都有了自己的理解,在这里记录下来自己的总结,把里面的逻辑都整理一遍

一、支付宝支付

先去看官方的支付文档,链接如下

https://openhome.alipay.com/platform/home.htm


1、先说前期准备,关键就是要生成一对公钥和私钥,这个看官方文档,现在官方有个自动生成工具,其实挺方便的。注意的是如果是java开发,生成的私钥要转成pkcs8格式。



(1)pkcs8的私钥自己保存,填到自己支付宝开发项目 里面的public static final String RSA_PRIVATE 这个字段里



(2)下面的蓝色2个选项,其实都是公钥。前个是自己上传的公钥,后一个是对应的支付宝公钥,这个支付宝公钥才是我们开发中需要的,这个切记。



(3)点红色方框,把自己生成的公钥上传给支付宝。



(4)点蓝色方框,得到支付宝的公钥,填到public static final String RSA_PUBLIC 这个字段里



2、准备完成了,接下来就是看请求参数的文档,这里告诉我们究竟要如何上传参数给支付宝后台,文档链接如下。

https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.kNJ0Uq&treeId=59&articleId=103663&docType=1

其实,支付宝接入的核心就是要组成下面图片所示的字符串,把这个字符串当参数传递调用支付宝Api即可。


我们来分析这个字符串。红色边框里面是签名内容sign和加密名称sign_type。(sign是根据我们上传参数生成的,也就是说所有我们上传的参数都需要一起签名;sign_type是签名方法,这里是固定值RSA)。而红色边框之外的是我们自己根据需要拼接的参数数据。接下来就是2个疑问

(1)红色边框之外的内容如何生成?

(2)红色边框里面的签名又是如何生成?


我们一个个来,先说红色边框之外的内容,把所有 值以key= “value”进行组合,之后用“&”字符连接起来,支持无序。  根据demo,我们使用一个String orderInfo = getOrderInfo("测试的商品", "该测试商品的详细描述", "0.01")方法得到这个字符串,而这个orderInfo就是红色边框之外的内容。

这个方法需要传递3个参数&#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值