支付宝app支付服务端的实现-Java版

前言最近在工作中需要使用支付宝App支付,在初次使用过程中也不可避免的出现了一些问题,那么本次随笔主要是概述支付宝app支付服务端的整个实现过程以及就服务端出现的一些问题做一些总结 。
1.准备工作1.1 入驻蚂蚁金服开放平台https://open.alipay.com/platform/home.htm
1.2 创建应用首先需要创建一个应用

支付宝app支付服务端的实现-Java版

文章插图

支付宝app支付服务端的实现-Java版

文章插图

支付宝app支付服务端的实现-Java版

文章插图
然后需要设置应用公钥 。
支付宝app支付服务端的实现-Java版

文章插图
下载支付宝密钥生成器 。生成成功之后会有商户应用公钥和私钥,将公钥复制到这里,私钥请妥善保存 。下载地址:https://docs.open.alipay.com/291/106097/ 。保存设置之后会显示支付宝公钥,请妥善保存 。
支付宝app支付服务端的实现-Java版

文章插图
最后提交审核,等待 。
注意:如果应用审核通过上线之后,支付宝公钥忘记后可通过进入应用详情页,按如下图所示查看支付宝公钥 。
支付宝app支付服务端的实现-Java版

文章插图
2.Maven依赖首先需要下载SDK,https://docs.open.alipay.com/54/104509 。
完成之后,需要切换命令行,进入SDK所在目录,执行如下命令 。如果命令无法执行,请百度如何配置maven环境变量,配置好之后再执行 。
 mvn install:install-file -DgroupId=com.alipay.sdk -DartifactId=alipay-sdk-JAVA -Dversion=3.1.0 -Dpackaging=jar -Dfile=SDK文件名.jar
groupId:可以自己定义,pom文件依赖依据与此
artifactId:可以自己定义,pom文件依赖依据与此
version:可以自己定义,pom文件依赖依据与此
packaging:打包方式(jar)
file:文件的路径的路径
在pom.xml中引入依赖,如下 。
<!-- 支付宝支付相关start -->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>3.1.0</version>
</dependency>
<!-- 支付宝支付相关end -->
3.配置文件中配置支付宝相关参数#支付宝支付相关配置
#支付宝分配给开发者的应用Id
aliPayAppId=XXX
#卖家支付宝用户号(对应异步通知返回参数seller_id)(可以不配置,只是异步通知时为了进一步校验而配置)
aliPaySellerId=XXX
#卖家支付宝账号(对应异步通知返回参数seller_email)(可以不配置,只是异步通知时为了进一步校验而配置)
alipayAccount=XXX
#商户应用公钥
rsaPublicKey=XXX
#商户应用私钥(注意,如果是Java语言,需要使用pkcs8格式的私钥,避免出现不可预知的错误)
rsaPrivatKey=XXX
#支付宝公钥
rsaAlipayPublicKey=XXX
#加密方式
signType=XXX
#仅支持JSON
alipayFormat=json
#请求使用的编码格式,如utf-8,gbk,gb2312等
alipayCharset=utf-8
4.生成Android/ target=_blank class=infotextkey>安卓端需要的orderString信息的接口方法/**
*app支付
*
*@author lp
*@date 2019/1/4 16:32
*/
@ApiOperation("app支付")
@RequestMapping(value = https://www.isolves.com/it/cxkf/yy/JAVA/2020-11-16/"alipay", method = RequestMethod.POST)
public String alipay(@RequestBody CombinedPaymentDto dto, HttpServletResponse response, HttpServletRequest request) {
response.setHeader("Access-Control-Allow-Origin", "*");
// 获取项目中实际的订单的信息
// 此处是相关业务代码
// 获取配置文件中支付宝相关信息(可以使用自己的方式获取)
String aliPayGateway = PropertiesUtils.getInstace("config/webService.properties").getProperty("aliPayGateway");
String aliPayAppId = PropertiesUtils.getInstace("config/webService.properties").getProperty("aliPayAppId");
String rsaPublicKey = PropertiesUtils.getInstace("config/webService.properties").getProperty("rsaPublicKey");
String rsaPrivatKey = PropertiesUtils.getInstace("config/webService.properties").getProperty("rsaPrivatKey");
String rsaAlipayPublicKey = PropertiesUtils.getInstace("config/webService.properties").getProperty("rsaAlipayPublicKey");
String signType = PropertiesUtils.getInstace("config/webService.properties").getProperty("signType");
String alipayFormat = PropertiesUtils.getInstace("config/webService.properties").getProperty("alipayFormat");


推荐阅读