51dev.com IT技术开发者社区

51dev.com 技术开发者社区

支付宝支付java模块接入,开发

代码星球阅读(19)2020-05-23 收藏0次评论

准备

  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();
    }
}

 

以上就是支付宝支付java模块接入,开发的全部内容。