支付宝支付java模块接入,开发
准备
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(); } }