由于最近用到了支付宝支付和微信支付,所以记录一下以备自己以后用到使用,本篇文章介绍一下Java实现支付宝支付Web端和Android端对应后台代码,话不多说,进入正题
本文以支付宝沙箱为主来做介绍,生产环境跟沙箱基本一致,能做到生产环境的一半也都能看出来哪里不一致,这里不做介绍
1.首先进入到支付宝开放平台https://open.alipay.com/platform/home.htm,用支付宝登录,然后点开发中心,选择沙箱,如下
2.在这个页面我们可以看到支付宝几个重要的参数,支付宝应用APPID,支付宝网关,支付宝秘钥(应用公钥,应用私钥,支付宝公钥)
APPID和支付宝网关可以直接看到,新用户进来之后RSA2秘钥是空的,这个时候我们可以这样去设置拿到应用的公钥和私钥以及支付宝公钥,如下图,点击之后会进入到获取应用的公钥和私钥的流程,这里不多介绍,填写完这几个之后,咱们来编写一下后台的应用
3.创建工程什么的这里就不做太多介绍了,我这里的工程时SpringBoot工程,目录结构如下:
4.首先来看下alipay.properties配置文件中配置的信息,只简单的说一下ALIPAY.NOTIFY_URL和ALIPAY.RUTURNA_URL这两个参数,notify_url是支付宝支付完成之后,支付宝回调函数,returna_url是web端或者Android端支付成功后回调函数,个人感觉returna_url可以不用写,这两个函数会在后面进行介绍
#需要配置,支付宝私钥(生产环境和沙箱环境生成方式稍微有点差别)
ALIPAY.PRIVATEKEY=这个地方是自己生成的应用私钥
#需要配置,支付宝公钥(生产环境和沙箱环境生成方式稍微有点差别)
ALIPAY.PUBLICKEY=应用公钥
#支付宝解签公钥(这个需要注意一下)
ALIPAY.RETURNPUBLICKEY=支付宝公钥,用于解签
#支付宝应用APPID
ALIPAY.APPID=2016092300574560
#支付宝网关
#ALIPAY.SERVER=https://openapi.alipay.com/gateway.do
ALIPAY.SERVER=https://openapi.alipaydev.com/gateway.do
#公网可以访问的地址
ALIPAY.NOTIFY_URL=http://localhost:8080/pay/notify
#公网可以访问的地址
ALIPAY.RETURNA_URL=http://localhost:8080/pay/notify
ALIPAY.SIGN=RSA2
5.完成配置文件之后,进入到主要的流程当中,创建Java类来实现支付宝网页支付(由于沙箱不支持Android测试,所以以网页版为例介绍,文中会包含Android支付代码)
5.1》首先需要引入支付宝SDK和gson的jar包,在pom.xml文件中加入两个包即可,如下:
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>3.1.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.2</version>
</dependency>
5.2》jar包引入之后,实现配置文件的读取,AliPayConfig.java类,类中省略了get/set方法,代码如下: