当前位置 主页 > 网站技术 > 代码类 > 最大化 缩小

    Java如何实现支付宝电脑支付基于servlet版本

    栏目:代码类 时间:2019-11-12 12:05

    这篇文章主要介绍了Java如何实现支付宝电脑支付基于servlet版本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    前期准备:

    蚂蚁金融开放平台进行登录操作

    进入我的开放平台

    在上方找到沙箱,进入沙箱(网络编程虚拟执行环境)。

    这里的RSA2密钥设置下,我已经设置好了,所以便有了支付宝公钥(公钥是对外公开的,私钥是自己保留的具体的不多做解释)

    至于RSA2密钥的生成,可参考如下操作:

    生成后在工具文件夹如下路径可以查看自己生成的公钥和私钥一对

    私钥保留,公钥设置到开发者平台RSA2上便可以了。

    官方DEMO因为我们需要一些jar包和可参考类,所以拿个DEMO方便很多

    所需要的jar包路径如下

    实例编写:

    工具我这里用的是eclipse,这个影响不大~

    新建web项目

    项目所需要的类如下

    AlipayConfig.java

    package cn.taosir.demo;
    
    public class AlipayConfig {
      // 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数
      public static String return_url = "http://localhost:8080/success.jsp";
      // 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
      public static String notify_url = "http://localhost:8080/notify";
      // 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
      public static String app_id = "";
      // 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
      public static String alipay_public_key = "";
      // 商户私钥,您的PKCS8格式RSA2私钥
      public static String merchant_private_key = "";
      // 签名方式
      public static String sign_type = "RSA2";
      // 字符编码格式
      public static String charset = "utf-8";
      // 支付宝网关
      public static String gatewayUrl = "https://openapi.alipaydev.com/gateway.do";
    }

    APPID(在查看支付宝公钥位置上方)、支付宝公钥、自己的私钥,记得配上

    NoitfyServlet.java

    package cn.taosir.demo;
    
    import java.io.IOException;
    import java.util.Map;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    @WebServlet("/notify")
    public class NotifyServlet extends HttpServlet{
      @Override
      protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("接收到支付宝的异步通知请求——");
        Map<String,String[]> parameterMap=request.getParameterMap();
        System.out.println(parameterMap);
        //成功处理后返回success
        response.getWriter().write("success");
      }
    }