支付宝当面付接入之DEMO简单解读

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/SUDDEV/article/details/79464465

以前项目接入支付宝时做过一些笔记,这里整理一下

本次测试均在沙箱环境下进行
常用支付宝文档

沙箱登录:https://openhome.alipay.com/platform/appDaily.htm

沙箱环境使用说明:https://doc.open.alipay.com/doc2/detail.htm?treeId=200&articleId=105311&docType=1 

如何使用沙箱环境:https://support.open.alipay.com/support/hotProblemDetail.htm?spm=a219a.7386793.0.0.uS5uZ6&id=251932&tagId=100248

当面付产品介绍:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.hV5Clx&treeId=193&articleId=105072&docType=1

扫码支付接入指引:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.Ia6Wqy&treeId=193&articleId=106078&docType=1 

当面付快速接入:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.bROnXf&treeId=193&articleId=105170&docType=1 

当面付接入必读:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.hV5Clx&treeId=193&articleId=105322&docType=1

当面付进阶功能:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.YFmkxI&treeId=193&articleId=105190&docType=1

当面付异步通知-仅用于扫码支付:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.BykVSR&treeId=193&articleId=103296&docType=1

当面付SDK&DEMO:https://support.open.alipay.com/docs/doc.htm?spm=a219a.7386797.0.0.k0rwWc&treeId=193&articleId=105201&docType=1

服务端SDK:https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1

生成RSA密钥:https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=105971&docType=1

线上创建应用说明:https://doc.open.alipay.com/doc2/detail.htm?treeId=200&articleId=105310&docType=1#s0

首先从支付宝下载demo&sdk
https://support.open.alipay.com/docs/doc.htm?spm=a219a.7386797.0.0.k0rwWc&treeId=193&articleId=105201&docType=1
通过Idea导入得到的TradePayDemo项目
导入项目
然后编辑zdbinfo.properties 修改我们自己应的信息
这里改为我的沙箱信息 (注意 PID 其实对应 商户UID)
https://openhome.alipay.com/platform/appDaily.htm
其中需要生成 RSA2(SHA256)密钥 官方也推荐这种算法
于是我们下载密钥生成工具
https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=105971&docType=1
因为使用JAVA开发,所以选择PKCS8,然后RSA2密钥长度选择2048位
RSA2048位签名
将生成好的密钥和公钥配置到DEMO的properties中,同时配置到到支付宝开发平台
https://openhome.alipay.com/platform/appDaily.htm
配置公钥
配置好后在旁边会出现支付宝的公钥,将支付宝的公钥也配置到properties中
prorerties配置好了,接下来到支付宝开放平台中配置选看部分,如下
3
其中授权回调地址为具体项目中自己编写的地址
扫码开始和支付成功后支付宝会回调我们这个地址,具体回调规则可以参看文档


所有配置完成,进行测试环节
进入DEMO,运行main方法,得到以下输出
demo输出
说明我们配置调通了。如果报错,多检查检查公钥密钥配置是否正确,有一点差错都配置不成功

运行成功后得到很多返回信息,来看几个重要的
输出信息
上图高亮部分就是qr_code既二维码数据,将这个得到的数据粘贴到在线二维码生成网站来测试一下
二维码在线生成网站:https://cli.im/
生成二维码
这个就是我们很熟悉的交易二维码了,下载支付宝沙箱app 来测试一下
注意,沙箱提供两个账号,一个买家账号一个商户账号,我们分别来登录测试
账号地址:
https://openhome.alipay.com/platform/appDaily.htm?tab=account
登录账号
首先登陆买家账号-扫一扫
扫描效果
买家扫描
付款后能够看到本次消费信息
然后我们登陆商家账号
在账单中能够看到刚才交易的信息,并且钱包中余额也增加了
卖家收款图
继续研究输出数据
输出数据图
如上高亮部分,可以看出来这是一个JSON信息,我没format一下
ps:在线json转换网址:http://www.json.cn/
转换结果:
json结果
我们已经能看到很多信息了,比如

out_trade_no 订单号
total_amount 总金额
goods_detail 商品细节
timeout_express 交易超时时间
等等具体细节可以查阅文档

既然这个DEMO是WEB项目,我们配置到tomcat容器中看一下
index.html
Demo首页
测试一下二维码支付
二维码支付页面
输入信息,确认
生成二维码
我们可以看到生成了二维码,以及交易数据
扫描结果:
扫描结果
和期望的一样

到此我们的DEMO就跑通了,可以参照Demo结合自己业务逻辑来编写代码~

阅读更多

更多精彩内容