准备
1、蚂蚁金服开放平台商户注册-》https://open.alipay.com/platform/home.htm
2、创建应用或者沙箱应用

3、创建应用或者沙箱应用
4.配置相关参数
回调,公钥私钥等,然后签约开发的移动端类型,签约应用,包括但不限于APP,网页支付.留存appid, 支付宝公钥,应用私钥,支付宝公钥由上传的应用私钥获取而来。
可以下载阿里提供的sdk进行集成,免去重写造轮子https://docs.open.alipay.com/54/103419/
代码
如果使用sdk提供的sdk进行编码速度岁提升很多,例如:
AlipayTradeQueryRequest 订单查询
AlipayTradeWapPayRequest web支付表单
AlipayTradePrecreateRequest 二维码预下单接口
.....
剩下的就是写业务相关方面的代码了
。。。。。。。。。。。。
回调:
@PostMapping("/aliPayBack")
public void aliPayBack(HttpServletRequest request, HttpServletResponse response) throws IOException {
logger.debug("阿里支付成功回调接口");
String result = "failure";
try {
String orderCode= request.getParameter("out_trade_no");
Map<String, String> map = AliPayUtils.sortNotifyMap(request.getParameterMap());//对参数进行处理 应当为<String,String>
boolean signVerified = AlipaySignature.rsaCheckV1(map, "公钥", AliConstants.UTF_8, AliConstants.RSA2);
if (signVerified) {
//阿里云主动通知只有两种情况 1 付款成功 TRADE_SUCCESS 2退款通知TRADE_CLOSED
String status = map.get("trade_status");
}else {
result = "failure";
logger.debug(":阿里API校验未通过");
}
}catch (Exception e){
result = "failure";
e.printStackTrace();
}finally {
PrintWriter out=response.getWriter();
out.println(result);
out.flush();
out.close();
}
}
