不多bb,直接开始准备工作

1、登陆蚂蚁金服,设置身份为开发者/自研开发

2、找到开发者中心-->研发服务

3、一会儿java代码需要的配置参数

4、可以在当前页面下载手机客户端进行登陆(每个人账号密码不一样的)

5、spring快速集成支付宝 官方参考demo百度云:https://pan.baidu.com/s/1jnhEaeVAIwXf9p5sMb6Bvw

5.0启动springboot

package cn.itsource;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication//(scanBasePackages="cn.itsource")
public class RunApp {public static void main(String[] args) {SpringApplication.run(RunApp.class, args);}
}

5.1创建一个Maven项目(使用springboot减少配置时间,配置内容不变,还是集成Mybatis)

5.2导入springboot依赖极其支付依赖包pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>alipay-demo</groupId><artifactId>alipay-demo</artifactId><version>0.0.1-SNAPSHOT</version><properties><java.version>1.8</java.version></properties><!-- Spring Boot 父文件 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.10.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 热部署 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency><!--必须有才能编译jsp --><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId><scope>provided</scope></dependency><!--数据库驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><!-- spring-boot mybatis依赖 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.0</version></dependency><!-- 支付宝 --><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>3.4.27.ALL</version></dependency></dependencies>
</project>

5.3前台页面

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>支付宝电脑网站支付</title>
<style>
* {margin: 0;padding: 0;
}
ul, ol {list-style: none;
}
body {font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande",sans-serif;
}
.tab-head {margin-left: 120px;margin-bottom: 10px;
}
.tab-content {clear: left;display: none;
}
h2 {border-bottom: solid #02aaf1 2px;width: 200px;height: 25px;margin: 0;float: left;text-align: center;font-size: 16px;
}
.selected {color: #FFFFFF;background-color: #02aaf1;
}
.show {clear: left;display: block;
}
.hidden {display: none;
}
.new-btn-login-sp {padding: 1px;display: inline-block;width: 75%;
}
.new-btn-login {background-color: #02aaf1;color: #FFFFFF;font-weight: bold;border: none;width: 100%;height: 30px;border-radius: 5px;font-size: 16px;
}
#main {width: 100%;margin: 0 auto;font-size: 14px;
}
.red-star {color: #f00;width: 10px;display: inline-block;
}.null-star {color: #fff;
}
.content {margin-top: 5px;
}
.content dt {width: 100px;display: inline-block;float: left;margin-left: 20px;color: #666;font-size: 13px;margin-top: 8px;
}
.content dd {margin-left: 120px;margin-bottom: 5px;
}
.content dd input {width: 85%;height: 28px;border: 0;-webkit-border-radius: 0;-webkit-appearance: none;
}
#foot {margin-top: 10px;position: absolute;bottom: 15px;width: 100%;
}
.foot-ul {width: 100%;
}
.foot-ul li {width: 100%;text-align: center;color: #666;
}
.note-help {color: #999999;font-size: 12px;line-height: 130%;margin-top: 5px;width: 100%;display: block;
}
#btn-dd {margin: 20px;text-align: center;
}
.foot-ul {width: 100%;
}
.one_line {display: block;height: 1px;border: 0;border-top: 1px solid #eeeeee;width: 100%;margin-left: 20px;
}
.am-header {display: -webkit-box;display: -ms-flexbox;display: box;width: 100%;position: relative;padding: 7px 0;-webkit-box-sizing: border-box;-ms-box-sizing: border-box;box-sizing: border-box;background: #1D222D;height: 50px;text-align: center;-webkit-box-pack: center;-ms-flex-pack: center;box-pack: center;-webkit-box-align: center;-ms-flex-align: center;box-align: center;
}
.am-header h1 {-webkit-box-flex: 1;-ms-flex: 1;box-flex: 1;line-height: 18px;text-align: center;font-size: 18px;font-weight: 300;color: #fff;
}
</style>
</head>
<body text=#000000 bgColor="#ffffff" leftMargin=0 topMargin=4><header class="am-header"><h1>支付宝电脑网站支付体验入口页</h1></header><div id="main"><div id="tabhead" class="tab-head"><h2 id="tab1" class="selected" name="tab">付 款</h2><h2 id="tab2" name="tab">交 易 查 询</h2><h2 id="tab3" name="tab">退 款</h2><h2 id="tab4" name="tab">退 款 查 询</h2><h2 id="tab5" name="tab">交 易 关 闭</h2></div><form name=alipayment action=/alipay/alipayTradePagePay method=posttarget="_blank"><div id="body1" class="show" name="divcontent"><dl class="content"><dt>商户订单号 :</dt><dd><input id="WIDout_trade_no" name="WIDout_trade_no" /></dd><hr class="one_line"><dt>订单名称 :</dt><dd><input id="WIDsubject" name="WIDsubject" /></dd><hr class="one_line"><dt>付款金额 :</dt><dd><input id="WIDtotal_amount" name="WIDtotal_amount" /></dd><hr class="one_line"><dt>商品描述:</dt><dd><input id="WIDbody" name="WIDbody" /></dd><hr class="one_line"><dt></dt><dd id="btn-dd"><span class="new-btn-login-sp"><button class="new-btn-login" type="submit"style="text-align: center;">付 款</button></span> <span class="note-help">如果您点击“付款”按钮,即表示您同意该次的执行操作。</span></dd></dl></div></form><form name=tradequery action=alipay.trade.query.jsp method=posttarget="_blank"><div id="body2" class="tab-content" name="divcontent"><dl class="content"><dt>商户订单号 :</dt><dd><input id="WIDTQout_trade_no" name="WIDTQout_trade_no" /></dd><hr class="one_line"><dt>支付宝交易号 :</dt><dd><input id="WIDTQtrade_no" name="WIDTQtrade_no" /></dd><hr class="one_line"><dt></dt><dd id="btn-dd"><span class="new-btn-login-sp"><button class="new-btn-login" type="submit"style="text-align: center;">交 易 查 询</button></span> <span class="note-help">商户订单号与支付宝交易号二选一,如果您点击“交易查询”按钮,即表示您同意该次的执行操作。</span></dd></dl></div></form><form name=traderefund action=alipay.trade.refund.jsp method=posttarget="_blank"><div id="body3" class="tab-content" name="divcontent"><dl class="content"><dt>商户订单号 :</dt><dd><input id="WIDTRout_trade_no" name="WIDTRout_trade_no" /></dd><hr class="one_line"><dt>支付宝交易号 :</dt><dd><input id="WIDTRtrade_no" name="WIDTRtrade_no" /></dd><hr class="one_line"><dt>退款金额 :</dt><dd><input id="WIDTRrefund_amount" name="WIDTRrefund_amount" /></dd><hr class="one_line"><dt>退款原因 :</dt><dd><input id="WIDTRrefund_reason" name="WIDTRrefund_reason" /></dd><hr class="one_line"><dt>退款请求号 :</dt><dd><input id="WIDTRout_request_no" name="WIDTRout_request_no" /></dd><hr class="one_line"><dt></dt><dd id="btn-dd"><span class="new-btn-login-sp"><button class="new-btn-login" type="submit"style="text-align: center;">退 款</button></span> <span class="note-help">商户订单号与支付宝交易号二选一,如果您点击“退款”按钮,即表示您同意该次的执行操作。</span></dd></dl></div></form><form name=traderefundqueryaction=alipay.trade.fastpay.refund.query.jsp method=posttarget="_blank"><div id="body4" class="tab-content" name="divcontent"><dl class="content"><dt>商户订单号 :</dt><dd><input id="WIDRQout_trade_no" name="WIDRQout_trade_no" /></dd><hr class="one_line"><dt>支付宝交易号 :</dt><dd><input id="WIDRQtrade_no" name="WIDRQtrade_no" /></dd><hr class="one_line"><dt>退款请求号 :</dt><dd><input id="WIDRQout_request_no" name="WIDRQout_request_no" /></dd><hr class="one_line"><dt></dt><dd id="btn-dd"><span class="new-btn-login-sp"><button class="new-btn-login" type="submit"style="text-align: center;">退 款 查 询</button></span> <span class="note-help">商户订单号与支付宝交易号二选一,如果您点击“退款查询”按钮,即表示您同意该次的执行操作。</span></dd></dl></div></form><form name=tradeclose action=alipay.trade.close.jsp method=posttarget="_blank"><div id="body5" class="tab-content" name="divcontent"><dl class="content"><dt>商户订单号 :</dt><dd><input id="WIDTCout_trade_no" name="WIDTCout_trade_no" /></dd><hr class="one_line"><dt>支付宝交易号 :</dt><dd><input id="WIDTCtrade_no" name="WIDTCtrade_no" /></dd><hr class="one_line"><dt></dt><dd id="btn-dd"><span class="new-btn-login-sp"><button class="new-btn-login" type="submit"style="text-align: center;">交 易 关 闭</button></span> <span class="note-help">商户订单号与支付宝交易号二选一,如果您点击“交易关闭”按钮,即表示您同意该次的执行操作。</span></dd></dl></div></form><div id="foot"><ul class="foot-ul"><li>支付宝版权所有 2015-2018 ALIPAY.COM</li></ul></div></div>
</body>
<script language="javascript">var tabs = document.getElementsByName('tab');var contents = document.getElementsByName('divcontent');(function changeTab(tab) {for(var i = 0, len = tabs.length; i < len; i++) {tabs[i].onmouseover = showTab;}})();function showTab() {for(var i = 0, len = tabs.length; i < len; i++) {if(tabs[i] === this) {tabs[i].className = 'selected';contents[i].className = 'show';} else {tabs[i].className = '';contents[i].className = 'tab-content';}}}function GetDateNow() {var vNow = new Date();var sNow = "";sNow += String(vNow.getFullYear());sNow += String(vNow.getMonth() + 1);sNow += String(vNow.getDate());sNow += String(vNow.getHours());sNow += String(vNow.getMinutes());sNow += String(vNow.getSeconds());sNow += String(vNow.getMilliseconds());document.getElementById("WIDout_trade_no").value =  sNow;document.getElementById("WIDsubject").value = "测试";document.getElementById("WIDtotal_amount").value = "0.01";}GetDateNow();
</script>
</html>

5.4访问前台的控制器IndexController 浏览器访问http://localhost:8080/alipay/index

package cn.itsource.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/alipay")
public class IndexController {@RequestMapping("/index")public String index(){return "index";}
}

5.5点击支付按钮访问的后台处理ALiPayController

使用手机下载的客户端扫码(测试的支付宝软件)

package cn.itsource.controller;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayTradePagePayRequest;
import cn.itsource.alipay.AlipayConfig;
/*** @author 阳彦刚*   支付宝主页点击付款*/
@Controller
@RequestMapping("/alipay")
public class ALiPayController {@RequestMapping("/alipayTradePagePay")public String payTradePagePay(HttpServletRequest request){//获得初始化的AlipayClientAlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, "json", AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);//设置请求参数AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();alipayRequest.setReturnUrl(AlipayConfig.return_url);alipayRequest.setNotifyUrl(AlipayConfig.notify_url);//商户订单号,商户网站订单系统中唯一订单号,必填String out_trade_no;//付款金额,必填String total_amount;//订单名称,必填String subject;//商品描述,可空String body;try {out_trade_no = new String(request.getParameter("WIDout_trade_no").getBytes("ISO-8859-1"),"UTF-8");total_amount = new String(request.getParameter("WIDtotal_amount").getBytes("ISO-8859-1"),"UTF-8");subject = new String(request.getParameter("WIDsubject").getBytes("ISO-8859-1"),"UTF-8");body = new String(request.getParameter("WIDbody").getBytes("ISO-8859-1"),"UTF-8");alipayRequest.setBizContent("{\"out_trade_no\":\""+ out_trade_no +"\"," + "\"total_amount\":\""+ total_amount +"\"," + "\"subject\":\""+ subject +"\"," + "\"body\":\""+ body +"\"," + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}");//请求String result = alipayClient.pageExecute(alipayRequest).getBody();//输出 pay页面取出request.setAttribute("result",result);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}return "pay";}
}

5.6支付完自动跳转页面到pay.html显示支付成功

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
${result}
</body>
</html>

5.7payResultController获取前台支付单号、金额、交易单号并返回支付结果

<%@ page language="java" contentType="text/html; charset=utf-8"pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
支付成功
</body>
</html>

package cn.itsource.controller;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.alipay.api.AlipayApiException;
import com.alipay.api.internal.util.AlipaySignature;
import cn.itsource.alipay.AlipayConfig;
@Controller
@RequestMapping("/payResult")
public class payResultController {@RequestMapping("/return_url")public String index(HttpServletRequest request){try {/* ** 功能:支付宝服务器同步通知页面* 日期:2017-03-30* 说明:* 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。* 该代码仅供学习和研究支付宝接口使用,只是提供一个参考。*************************页面功能说明************************** 该页面仅做页面展示,业务逻辑处理请勿在该页面执行*///获取支付宝GET过来反馈信息Map<String,String> params = new HashMap<String,String>();Map<String,String[]> requestParams = request.getParameterMap();for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {String name = (String) iter.next();String[] values = (String[]) requestParams.get(name);String valueStr = "";for (int i = 0; i < values.length; i++) {valueStr = (i == values.length - 1) ? valueStr + values[i]: valueStr + values[i] + ",";}//乱码解决,这段代码在出现乱码时使用valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");params.put(name, valueStr);}// 验签boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.alipay_public_key, AlipayConfig.charset, AlipayConfig.sign_type); //调用SDK验证签名//——请在这里编写您的程序(以下代码仅作参考)——if(signVerified) {//商户订单号String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");//支付宝交易号String trade_no = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");//付款金额String total_amount = new String(request.getParameter("total_amount").getBytes("ISO-8859-1"),"UTF-8");// 修改订单号的状态//out.println("trade_no:"+trade_no+"<br/>out_trade_no:"+out_trade_no+"<br/>total_amount:"+total_amount);request.setAttribute("reuslt", "trade_no:"+trade_no+"<br/>out_trade_no:"+out_trade_no+"<br/>total_amount:"+total_amount);}else {//out.println("验签失败");request.setAttribute("reuslt", "支付失败");}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} //——请在这里编写您的程序(以上代码仅作参考)——return "payResult";}
}

5.8AlipayConfig 支付宝配置信息

修改下面代码里的返回路径

package cn.itsource.alipay;import java.io.FileWriter;
import java.io.IOException;/* **类名:AlipayConfig*功能:基础配置类*详细:设置帐户有关信息及返回路径*修改日期:2017-04-05*说明:
宝接口使用,只是提供一个参考。*/public class AlipayConfig {//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号public static String app_id = "2016092000552215";// 商户私钥,您的PKCS8格式RSA2私钥public static String merchant_private_key = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDC96ZyYcsRpb3fOlESpb8hcG7L/bFiSCQriAsOjpX+UIZibEZhfdXfy6vgvUruryHWX0KoLyC0QAv91JFJwbcDVIGGkrStbRltuRctEtNcHNR4v7fbVDOFG9/lDnVVJrA0tMPwXBnCErexN0KGq2+83/wp0ikB1OsaCPLA+FidtgruNwmDO0BmtcEUTc4FQqrveXJxbZjKlVCW7nl2iEYFlhWLMqB8XBRzRAie5tH+vFMvA5YgVTJ6IXcFH/hGE5eHfMrWnQzCDYZOFiDwhz5m4hz+irpXzR/uc7gpS1RYPwtRdCRova0hNJb9OMUFJxR7wSSOjtTKcV3UX4QFjqnFAgMBAAECggEAbaQFR3e1UhRJ5ZoO85SgGnb25+Kf+WwmYxCbXzFSKnUwTXMkVTkFqFgKLVVmKTn1pm9ltdzi4FrQI4uBtN+qQsYoHPytfIXI8gpPfTqD/936onj2NPJyEp3tWAu8cglSuCEbuzSgC6KpCJDR6ZfJO4cecIpOI0iQedCka159vxogRqVSiiCs6TGTg8y3OzILSxaRRmUhMMyl0s7zSiXn+5KcnKZmNmyehU+STZCFFoGcy1i47K0b10vIx9/UlMGLr6Bx40TIhub2Wr8+E+/nrnGo1Jyz07rSOqlqAvs/wtUnRlyQu37OOS3USJw6B8DVa3zPJ8RPPMr7K7PqalJ3AQKBgQDlsC3PD4/yD8FWJu0TXO9cDpJcOjU+YG9gaZn4eh5hJc/XmnlTYQMCfOalLXvXCGuhAgKUQ8tRtgZbEXj2hwWbXRpUxvULZXPqRs7o/rrkVYpgglYWpCU07nl4l5dUnBwzAuiVIDitexGJw+Qxn5v9Jts5z/QiPSg1QfGz2XoYQQKBgQDZTUA6ARA0k8ywEs8aY8zCC2vE+VH8wN1sULjlTvQJuFZGnT67BhZDN8oz0cFQ+d3lIgoR8isrtIOwkuGmYTDIOJwBoccOVRS20lu9GAXh5af0kQFvuIcR6Kls4EarIyXhMb2ZWtGhYgzsy9sMcLMkMZNNU73b2loH6datoJwQhQKBgFZ4wnY+1KF7/vyRQRXWGiMdNUrVezAVnDi+6QGb8A4A70OrW1vhnQF1xluPSR1GhUajfBcXgtcrYS8t381oPdsk7QHXuW9l7YLYz5L2O6Q09BirWP/DImLQGRkmcQmgkBlAUhG6hLwDJjIodqOcBF0FIOmd+bpeLeIHBpkAGjBBAoGBAJ1IuRBC7MPhpupa8uSbD/3z3lF4VMupnZtk4i+38hOHBYufDWS5hyuoGgdf75j5Ao9zD+7lZjIAOsF3zzRqbLC/qMvVmQrasl+R6yz3Umqrm+H9gxima72eteNEgmIk0qopIp75iXpSSiCrfSWH/WJZL9Fsp6OWbEwGCYkrE0sxAoGBAJHkyiG1e4N6RI2/vxUhGM1CGkZVayLVJoCEN08iu+8YvSvrqc12rs6h9dtaThbh8+3poMAVpbetebMolLTpEM52WyxxXrEx/lWemvSfobalpdnyC+9A4gZm22DPFFJQtkngVNVqONDnrfNT/+m9ZBR0vvRryJ7XygX0hyu+2Zhd";// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。public static String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsJMbCYykTyAAy/8jNxX9kzdBgBfgUhWl/TplIL7Adyz12ljTwiERt4mSEENF3yJP0bWxelFr0YwPTkKTdCvMs7gbM+XfDbX/D9/YIwAOmbvaykPgZiTHOM2TXroOwg8OZznoPmmzEHT4Dz5gWQQwmKYQnTNCjqSYSF8H9SOJCudBXWCvIs0DLXfebhMyyBiDzTBxKFdTAFbrampJNmfzfZ6ifgLIHhZhDWENlUQBFZKOHDQxZalYuNUM4PhOuCdw/RA0eKVHNnk44ezLxBF9Ys6o+96YZoiZ3n96QPmgrinbyLn/yYOIJDLOi6QwKAt8EBShRnGDYmfD+q5PUMH9gQIDAQAB";// 服务器异步通知页面路径  需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问public static String notify_url = "http://localhost:8080/notify_url.jsp";// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问public static String return_url = "http://localhost:8080/payResult/return_url";// 签名方式public static String sign_type = "RSA2";// 字符编码格式public static String charset = "utf-8";// 支付宝网关 ////public static String gatewayUrl = "https://openapi.alipay.com/gateway.do";// 正式public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do";// 测试// 支付宝网关 日志public static String log_path = "C:\\";//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑/** * 写日志,方便测试(看网站需求,也可以改成把记录存入数据库)* @param sWord 要写入日志里的文本内容*/public static void logResult(String sWord) {FileWriter writer = null;try {writer = new FileWriter(log_path + "alipay_log_" + System.currentTimeMillis()+".txt");writer.write(sWord);} catch (Exception e) {e.printStackTrace();} finally {if (writer != null) {try {writer.close();} catch (IOException e) {e.printStackTrace();}}}}
}

百度云地址:源码 https://pan.baidu.com/s/1n15YRcleMCpixYsGcGVASQ

支付宝相关安全问题

如何保障支付后传输的数据的安全性呢?

支付流程分为2部分(签名和验签)

签名 就是摘要和RSA 非对称加密,可以通过数字签名保证,首先对需要签名的数据做摘要(类似于MD5不可逆加密)后得到摘要结果,摘要就好比不改动原数据前提进行表面改变,比如需要传输的数据是abc,做摘要之后是abcd,然后通过签名者的私钥对摘要结果进行非对称加密得到签名结果

验签 就是把传输过来的签名结果与其它通过公钥传输到后台的数据进行比对,如果内容不一致说明被篡改;通过私钥加密的信息,只能通过其对应的公钥来进行解密,一旦支付成功就会同步回调返回信息,注意只是告诉你调用成功了,不是扣款成功,这叫同步调用,同步请求参数里面会有一个回调地址,这个地址是支付渠道在扣款成功后调用的,这叫异步调用。
一般同步接口仅检查参数是否正确,签名是否无误等。异步接口才告诉你扣款结果;

有疑问欢迎联系QQ2822256710  微信yygtq0818126

Spring集成阿里支付宝支付接口支付流程(案例)相关推荐

  1. 搞定支付接口(一) 支付宝即时到账支付接口详细流程和代码

    搞定支付接口(一) 支付宝即时到账支付接口详细流程和java代码 为避免你们和我一样被支付接口搞得焦头烂额,写一个从申请开始到能收到钱为止的详细教程,实际上各个语言都可以用来集成支付接口,我用java ...

  2. 支付宝商户支付接口接入流程

                                                                                                        ...

  3. 支付宝 app接口对接流程上

    最近开发一个app,需要对接支付宝,现在来整理一下流程吧 1.登录蚂蚁金服开放平台,创建一个移动应用 创建应用中所需要的参数apicloud中会有 2.添加功能,配置公钥(应用公钥) 应用创建成功后, ...

  4. 微信小程序调用支付接口支付(tp5、小程序)

    微信小程序调用支付接口支付 今天记录一下学习的小程序调用微信支付接口 一.先理清一下调起微信支付的整个流程. 1.就是先调用微信的支付统一下单api获取到prepay_id 2.然后后端再将这个pre ...

  5. 集成阿里支付宝沙箱支付接口支付流程如何操作(Springboot项目)

    支付宝模拟支付 第一步:搜索蚂蚁金服,设置身份开发者.自研开发 第二步:找到开发者中心–>研发服务 第三步:进入后点击沙箱应用,看见Java需要的配置参数 APPID 支付宝网关 密钥 注意 红 ...

  6. iOS:使用集成的支付宝SDK的支付流程

    基本步骤: 1.先与支付宝签约,获得商户的ID(partner)和账号ID(seller),这一部分主要是又公司负责: 2.下载相应的公钥私钥文件,用来给签名进行加密: 3.下载支付宝集成的SDK,网 ...

  7. Spring MVC+Spring+MyBatis实现支付宝扫码支付功能(图文详解)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者 | 思海(公众号:好好学java) 链接 | blog.cs ...

  8. abc云支付php,凉秋易支付,免签约支付平台,彩虹易支付,abc云支付云钱包,云支付,云结算,支付接口,支付营销,易支付,微信支付,支付宝,QQ钱包,个人支付接口,免签支付接口...

    支付接口介绍 使用此接口可以实现支付宝.QQ钱包.微信支付与财付通的即时到账,免签约,无需企业认证.接口API地址是:http://pay.lqan.cn/ 本文阅读对象:商户系统(在线购物平台.人工 ...

  9. 2020年第三方支付接口讲解流程分享

    一.网关支付 这是在线支付的最普遍形式. 大致支付过程:第三方支付公司作为代理(网关),接入一堆银行.用户在网关页面(可以在商户端,也可以第三方支付平台端)选择银行,页面跳转到第三方支付平台,然后重定 ...

最新文章

  1. 机器的深度学习究竟有多“深”?
  2. 理科的至尊思想:进制之间的转换
  3. XAML实例教程系列 – 对象和属性
  4. jQuery UI Widget(1.8.1)工作原理--转载
  5. Data source rejected establishment of connection, message from server: Too many connections
  6. Golang学习笔记——Slice
  7. 我犯的错误--关于主键
  8. javascript --- 实现Ajax的代码
  9. CSS 自由缩放 resize属性
  10. 修而未复:说说WebLogic那修不完的Java反序列化漏洞
  11. Shiro Realm领域
  12. 利用VBB仿真——实现摇杆时钟
  13. [Mysql]InnoDB数据页结构(掘金小册阅读笔记)
  14. 大点再大点个性化超大MSN头像(转)
  15. 使用xcelsius创建令人惊叹的幻灯片 --xcelsius入门
  16. 学习日志——2019/07/04
  17. Matlab求正态函数积分,积分对应的分位点
  18. html点击超链接启动邮件客户端创建电子邮件
  19. 关于unity数值资源序列化后在windows和android平台的本地读取
  20. Java中调整字距与行距的方法 其一(以DrawString为例)

热门文章

  1. 智能烧水壶(WIFI版)04——TS02N触摸按键驱动篇
  2. ChatGPT新一代人工智能
  3. windows桌面图标显示为白色解决方案
  4. 本题要求编写程序,读入5个字符串,按由小到大的顺序输出。
  5. 威纶通,威纶通模板,HMI,HMI UI,GUI,7寸触摸屏 通用,非常漂亮功能强大的程序模板,非常有参考价值,可直接移植项目使用
  6. 微信链接到服务器端网页,接入网页版微信支付
  7. 【Python】自动去除图片背景——Python抠图,就是这么轻松
  8. 大学计算机excel函数课件,高手常用的五个Excel函数组合
  9. 小白编程-资源帖-h5模板源码
  10. otsu阈值分割算法原理_OTSU_图像二值化分割阈值的算法