如何用struts调用支付宝接口

下面是如何用struts调用支付宝接口的攻略。

1.准备工作

在使用struts调用支付宝接口之前,需要先完成以下准备工作:

1.申请支付宝开发者账号:在支付宝开放平台注册账号,并完成实名认证。

2.创建应用:登录开放平台后,在开发者控制台创建一个应用,并得到应用的APP ID、商户私钥、支付宝公钥等信息。

3.下载支付宝开发包:在[支付宝开放平台](https://opendocs.alipay.com/open/54/103419)下载Java SDK。

4.将SDK导入到项目中:将SDK解压后,将其中的jar包和lib目录中的所有jar包添加到项目的classpath。

2.编写代码

下面是两个示例,分别演示在struts中调用支付宝API完成批量转账和即时到账支付的过程。

批量转账示例

1.编写Action

public class BatchTransfersAction extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) throws Exception {
        AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.URL, AlipayConfig.APP_ID, AlipayConfig.APP_PRIVATE_KEY, AlipayConfig.FORMAT, AlipayConfig.CHARSET, AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.SIGN_TYPE);
        AlipayFundTransToaccountTransferRequest alipayRequest = new AlipayFundTransToaccountTransferRequest();
        alipayRequest.setBizContent("{" +
        "\"out_biz_no\":\"20180901001\"," +
        "\"payee_type\":\"ALIPAY_LOGONID\"," +
        "\"payee_account\":\"xxx@alipay.com\"," +
        "\"amount\":\"100.00\"," +
        "\"payer_show_name\":\"转账支付测试\"," +
        "\"payee_real_name\":\"测试用户\"," +
        "\"remark\":\"转账测试\"" +
        "  }");
        AlipayFundTransToaccountTransferResponse alipayResponse = alipayClient.execute(alipayRequest);
        if(alipayResponse.isSuccess()){
            System.out.println("调用支付宝API成功");
        } else {
            System.out.println("调用支付宝API失败");
        }
        return mapping.findForward("success");
    }
}

2.配置struts.xml

<action name="batchTransfers" class="BatchTransfersAction">
    <result name="success">/batchTransfers.jsp</result>
</action>

3.编写JSP

<a href="${pageContext.request.contextPath}/batchTransfers">批量转账</a>

即时到账支付示例

1.编写Action

public class AlipayAPIAction extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) throws Exception {
        AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.URL, AlipayConfig.APP_ID, AlipayConfig.APP_PRIVATE_KEY, AlipayConfig.FORMAT, AlipayConfig.CHARSET, AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.SIGN_TYPE);
        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
        alipayRequest.setReturnUrl("http://localhost:8080/ProjectName/success.jsp");
        alipayRequest.setNotifyUrl("http://localhost:8080/ProjectName/notify_url.jsp");
        alipayRequest.setBizContent("{" +
        "\"out_trade_no\":\"20180918064\"," +
        "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"," +
        "\"total_amount\":0.01," +
        "\"subject\":\"测试商品名称\"," +
        "\"body\":\"测试商品描述信息\"" +
        "}");
        String formHtml = alipayClient.pageExecute(alipayRequest).getBody();
        response.setContentType("text/html;charset=" + AlipayConfig.CHARSET);
        response.getWriter().write(formHtml);
        response.getWriter().flush();
        response.getWriter().close();
        return null;
    }
}

2.配置struts.xml

<action name="alipayAPI" class="AlipayAPIAction">
    <result name="success" type="redirect">{redirectUrl}</result>
</action>

3.编写JSP

<a href="${pageContext.request.contextPath}/alipayAPI?redirectUrl=https://openapi.alipay.com/gateway.do">支付宝支付</a>

3.总结

通过以上两个示例,我们可以看到struts调用支付宝API相对简单,只需要创建支付宝SDK的客户端并传入请求参数即可。当然,我们还可以通过访问支付宝开放平台的官方文档,了解更多API的参数和使用方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何用struts调用支付宝接口 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java LinkedList的实现原理图文详解

    首先,我们来了解一下Java LinkedList的基本特性。LinkedList是Java中实现链表数据结构的一种方式,它实现了List、Deque、Queue接口。LinkedList内部以链表的形式存储元素,每个节点都包含上一个节点的引用和下一个节点的引用。因此可以方便的在链表的任意位置进行添加、删除操作,但是随机访问某个元素的效率会比较低。 Link…

    Java 2023年5月26日
    00
  • jQuery ajaxForm()的应用

    当需要通过 AJAX 方式向服务器提交表单数据时,jQuery 提供了方便的方法 ajaxForm()。下面是该方法的详细介绍及应用攻略。 ajaxForm() 方法的使用 基本语法 $(selector).ajaxForm(options); 其中,selector 是表单的选择器,options 是一个对象,包含了一些可选参数及回调函数,具体参数如下: …

    Java 2023年6月16日
    00
  • JAVA CountDownLatch(倒计时计数器)用法实例

    JAVA CountDownLatch(倒计时计数器)用法实例 什么是 CountDownLatch CountDownLatch(倒计时计数器)是 Java 提供的一个同步工具类,通过它可以让一个或多个线程等待其它线程完成各自的工作后再继续执行。 在 CountDownLatch 中,我们可以设置一个计数器的初始值 n,然后调用 countDown() 方…

    Java 2023年5月20日
    00
  • Spring中IOC和AOP的深入讲解

    Spring中IOC和AOP的深入讲解 Spring框架是Java企业级应用开发中最重要的轻量级框架之一,使用Spring框架可以更轻松地实现控制反转(IoC)和面向切面编程(AOP)等关键功能。本文将深入介绍Spring中IoC和AOP的概念、原理及示例使用方法。 IoC(Inversion of Control)控制反转 IoC是一个重要的面向对象编程原…

    Java 2023年5月19日
    00
  • Java集合类知识点总结

    Java集合类知识点总结 什么是Java集合类 Java集合类是一组实现了集合数据结构的类和接口。Java集合类主要有三类:List、Set、Map。其中List有序可重复、Set无序不可重复、Map无序的键值对。 Java集合类可以方便地进行添加、删除、遍历和查找等操作,并且根据不同的需求选择不同的集合类可以大大提高程序的运行效率。 常用的Java集合类 …

    Java 2023年5月20日
    00
  • SpringMvc框架的简介与执行流程详解

    以下是关于“SpringMVC框架的简介与执行流程详解”的完整攻略,其中包含两个示例。 1. 前言 SpringMVC是一种常用的Java Web开发框架,它基于MVC(Model-View-Controller)模式,将Web应用程序分为三个部分:模型、视图和控制器。本攻略将详细讲解SpringMVC框架的简介和执行流程。 2. 简介 SpringMVC框…

    Java 2023年5月16日
    00
  • Java中不常用但很好用的开发小技巧分享

    下面是 “Java中不常用但很好用的开发小技巧分享” 的完整攻略: 一、使用Lambda表达式简化代码 Lambda表达式是Java 8中引入的新特性,它可以将方法当做参数进行传递,从而简化代码。比如,在Java 8之前,如果我们要对一个集合进行排序,通常需要实现Comparator接口,然后实现compare方法。而在Java 8中,我们可以使用Lambd…

    Java 2023年5月23日
    00
  • java中的实体类时间格式化

    下面是Java中的实体类时间格式化的完整攻略: 1. 为什么需要格式化时间? 在Java实体类中,经常需要处理时间类型的属性。很多时候,这些时间类型的属性需要按照一定的格式输出,比如要求输出为”yyyy-MM-dd HH:mm:ss”格式的字符串。而Java中的Date、LocalDateTime、Timestamp等时间类型默认的toString()输出格…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部