概述
不会的时候觉得项目接入支付宝接口男上加男,学会以后觉得还是挺简单的(狗头),总结一下步骤:
1、登录 支付宝开放平台,手机支付宝扫一扫也就登录了,真方便
2、进入沙箱环境 ,在RSA2秘钥的地方可以生成秘钥,需要下载,我的已经生成过了
这两处地方可以和我配置的一样,回调地址是支付宝付款成功后跳转的地址
3、下载SDK
点我,
大概这个样子吧
<!-- alipay -->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>3.1.0</version>
</dependency>
4、又是工具类
工具类基本上是这样的,和微信比,接入支付宝真是简单多了,接口文档写的也很好,爱了爱了。这个返回的form其实是一个前端的form表单,会自动提交,可以在控制台输出看一下效果,但是最后的<script>标签在前端的时候会自动解析,所以可以截取下来,将form放入前端的div中,通过jquery选择器获取到form,.submit()提交就可以了。支付宝做的这个页面在支付完成后会自动跳转到我们制定的页面。接入就完成了。
package com.fh.util;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.fh.entity.Order;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class AliPayUtil {
public static String payController(HttpServletRequest request, Order order) throws IOException {
//获得初始化的AlipayClient
AlipayClient alipayClient = new DefaultAlipayClient(
"https://openapi.alipaydev.com/gateway.do",
//自己的APPID 沙箱里边有的
"2021000116677545",
//自己生成的私钥
"MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCPGKk/92iOisPBTHq05hMy4bHGx3/CLIjaCQ+zIl+AnK2+3QyMxyRVa0a/L4DKTCCdiUhqJWIZETE7zWnZ+E6td0kyZOyHlvB3FuFcUW53OSs3LcU7Z0WdvTWVeAJI/Lf7Km+277fnb8IgvZFF1toO5uLu5n3m3Rksq7SWHgufP2561MKC9jL+fw5Xb8VOZPYDQjcXVSOdsjo9p2dQzDTyr8iCMHln3n36X406yui8nU9rbxqJxqo3GdqpiLARvegx5+N/vV3r8BkFw1XGRVSWwIpS8A0fr6nELQSr0qYNM0YYAKUbQ6+BcPAWFi7vYRcssep6X+dkJrKalVFYq02xAgMBAAECggEAXcUpU9OK3q2sLcUyO8zxE8y2NK6S1+lbHJYHhbmmn58MdCBikvYEpz0PNUWpvec5EELgAz7QE+EiRDANh1qiJCYg/zcHkKqmlUOXFmn+W35JBXWm45B/HCjbLkFgLff9kEd0wYpBFxYzPkU7J2rtpgpC945vPpPwZUd3pU+3CfkHVAuKNPwVlu5/QkGgTxeUoqaFxiXSWy3wXvftMwEc7M+TPpFNFcD0a/o9GiQyal87bR+3H0FTpNoMJw3eicXBFVm1LBS2g/l7rjWf3njRYcQf2dn9IVpz4vaO6X+cvdnGeyare75u+BE9Z8cEtbwIunGMJqGSwWvdMi+xoBXx4QKBgQDfVc3OyNGWWPzdSYPEoQ2NFZgnqjw0hac4TqRmydSVPrcq8D6wsDmVvIZ4rg51T1YsRTviYkgHfGgGjHunOnK99MuLdAl8Dh8jS38aFT0sKtk7Akw9TMzppo976/XHCBqxg0MQUpVtxClFWT8JQR9FfD1VXSy2K23yzkC20RfshQKBgQCkBoaQJuGhh0kxD9L5oICN3HdIOvG1LtwfB5rc4w/+IyDgJ0BvamneYGff+84guI4fLVWi9Qzb8Q+BWEFTnhovPUXdbgMBNIZLdc2MuXTjDl3sbzuJXnVfAML4R2mGXxqImxmaWVeUeYa5q3e1hsRlvr+IP8ySYShAY1QdryvKPQKBgQCoo/L/dTaFz/ZI5m0gefhwk2DMeshxZIbrhr6vezIR7ESFoNnFs5wYDD6CO/Rg8qKAVVsty8bWGEO4xjXNBd6Ev6c/S0SqL0Ol9CkqueTyR/y2iTqmgyqsOABas8doHh+B8TsfxSxesWP0oLpvs4P4hSMPJYdQm6SvVr0ZDvSAvQKBgAL9p3h7bQPP/rKpUjSBC7cKfRZRFNUz7ImYTueWMFV2+IN907v0WcfXRC2eXszT8Kt63SPiigB8rcazAEXxDRMtb9ewyNc9yPEZTc0yGIKHYYkNIi3IDiXUUrnKO49arpYtFdNtq54mdSFvkfg6Y9xjFQT7/NPyd5Rs+zyrVAYVAoGBAN1eghr6WP4DBTkzzad3mJgiebZPqjY7hTmM6uYPeUpPMa2tRha3FiicaYvgsOfVT3Kyw5pTvJuqnrZw06/OdXUQQPhXJkvQxEEL8Q2KY8EvXR2A0FCPFAuzryuYBofqfzssDFs2U2K+6cTxpMPetpIHq0PWKnBZQ+HdRCr07Okj",
//这两个就和我的一样吧,这都不重要
"json",
"utf-8",
//支付宝公钥,注意,不是我们生成的公钥,是支付宝公钥,找沙箱
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv6PuEyyob2cGwqec09s8ma//N/1XM77F7YQ7LzQvKIvkD+rmCrPVsIjH99QhheX4byWmyxkBZQiffzrJJPt+PkIPd2uj7Ue6oWv+J/mUIXf1YOyXycDtZT60vg5gU95UPflkDS1btq/UEHTP8lAIlJtHRFoysmrYEoPwVgU2R6nj/PdW5bAbYVtGaAQfHhDp6VJoXOQoYrDjQXiWl82McZNOMm+OATTq4sjPpJC5l0XjZ+oQVLbFmQ25t7dRdPQqMPb7gwBnhKrlVVPzxnWLXfTo5GGIP/mBQKtgv/RlYsLdIg0kKpc/DLCxtKZV0E4newhhOqOwgLLde4JemdUkOwIDAQAB",
"RSA2"
);
//设置请求参数
AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
//支付完成后返回的页面
alipayRequest.setReturnUrl("http://192.168.1.11:8081/aliPay-success.jsp");
//这个就不要变了
alipayRequest.setNotifyUrl("https://openapi.alipaydev.com/gateway.do");
//商户订单号,商户网站订单系统中唯一订单号,必填
String out_trade_no = order.getOrderId().toString();
//付款金额,必填
String total_amount = order.getTotalMoney().toString();
//订单名称,必填
String subject = order.getOrderId().toString();
//商品描述,可空 可空就是不用写 哈哈
alipayRequest.setBizContent("{"out_trade_no":""+ out_trade_no +"","
+ ""total_amount":""+ total_amount +"","
+ ""subject":""+ subject +"","
+ ""product_code":"FAST_INSTANT_TRADE_PAY"}");
//若想给BizContent增加其他可选请求参数,以增加自定义超时时间参数timeout_express来举例说明
//alipayRequest.setBizContent("{"out_trade_no":""+ out_trade_no +"","
// + ""total_amount":""+ total_amount +"","
// + ""subject":""+ subject +"","
// + ""body":""+ body +"","
// + ""timeout_express":"10m","
// + ""product_code":"FAST_INSTANT_TRADE_PAY"}");
//请求参数可查阅【电脑网站支付的API文档-alipay.trade.page.pay-请求参数】章节
//请求
String form="";
try {
form = alipayClient.pageExecute(alipayRequest).getBody(); //调用SDK生成表单
} catch (AlipayApiException e) {
e.printStackTrace();
}
return form;
}
}
最后
以上就是大胆橘子为你收集整理的2020-8-11 springboot项目接入支付宝接口的全部内容,希望文章能够帮你解决2020-8-11 springboot项目接入支付宝接口所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复