zoukankan      html  css  js  c++  java
  • 支付宝支付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();
        }
    }
  • 相关阅读:
    24、面向对象(内置方法)
    23、面向对象(包装)
    22、面向对象(反射)
    21、面向对象(封装)
    20、面向对象(多态)
    19、面向对象(继承)
    18、面向对象(静态属性、类方法、静态方法)
    LeetCode 3. Longest Substring Without Repeating Characters
    LeetCode 2.Add Two Numbers
    LeetCode 1. Two Sum
  • 原文地址:https://www.cnblogs.com/lewskay/p/11315012.html
Copyright © 2011-2022 走看看