栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

如何用struts调用支付宝接口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何用struts调用支付宝接口

一、ACTION类关键代码 没用的包可以干掉

复制代码 代码如下:
package com.hzdracom.alipay.action;

import it.sauronsoftware.base64.base64;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;
import org.dom4j.document;
import org.springframework.stereotype.Controller;

import com.alibaba.fastjson.JSON;
import com.hzdracom.action.baseAction;
import com.hzdracom.config.AlipayConfig;
import com.hzdracom.util.AlipaySubmit;
import com.hzdracom.util.HTTPService;
import com.hzdracom.util.UtilDate;
import com.hzlq.source.security.DESUtil;

@Controller
public class AliPayAction extends baseAction {
    private String              phoneCode;
    private String              totalfee;

   
    public void pay() {
        try {
           
            String out_trade_no = UtilDate.getOrderNum() ;
          
            Map sParaTemp = new HashMap();
            sParaTemp = getPayPrama(totalfee, out_trade_no);

           
            String json = AlipaySubmit.buildRequest(sParaTemp, "get", "确认");
            HttpServletResponse response = ServletActionContext.getResponse();
            response.setContentType("text/html");
            response.setCharacterEncoding("utf-8");
            PrintWriter out;
            out = response.getWriter();
            json = JSON.toJSonString(json);
            out.write(json);
            out.flush();
            out.close();

        } catch (IOException e) {
        }
    }

   
    public Map getPayPrama(String totalfee, String out_trade_no) {
        Map sParaTemp = new HashMap();
        sParaTemp.put("service", "create_direct_pay_by_user");
        sParaTemp.put("partner", AlipayConfig.partner);
        sParaTemp.put("_input_charset", AlipayConfig.input_charset);
        sParaTemp.put("payment_type", AlipayConfig.payment_type);
       
        sParaTemp.put("notify_url", AlipayConfig.notify_url);
       
        sParaTemp.put("return_url", AlipayConfig.return_url);
       
        sParaTemp.put("seller_email", AlipayConfig.seller_email);
       
        sParaTemp.put("out_trade_no", out_trade_no);
       
        sParaTemp.put("subject", AlipayConfig.subject);
       
        sParaTemp.put("total_fee", totalfee);
       
        sParaTemp.put("body", AlipayConfig.body);
       
        sParaTemp.put("show_url", AlipayConfig.show_url);
        //防钓鱼时间戳
        sParaTemp.put("anti_phishing_key", AlipayConfig.anti_phishing_key);
       
        sParaTemp.put("exter_invoke_ip", AlipayConfig.exter_invoke_ip);
        return sParaTemp;

    }

    public String getPhoneCode() {
        return phoneCode;
    }

    public void setPhoneCode(String phoneCode) {
        this.phoneCode = phoneCode;
    }

    public String getTotalfee() {
        return totalfee;
    }

    public void setTotalfee(String totalfee) {
        this.totalfee = totalfee;
    }

}

二、AlipayConfig 类是封装支付宝接口参数

复制代码 代码如下:
package com.hzdracom.config;

import com.hzdracom.util.UtilDate;

public class AlipayConfig {

 //↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
 // 合作身份者ID,以2088开头由16位纯数字组成的字符串
 public static String partner = "2088001466494907";
 // 商户的私钥
 public static String key = "fb30213vjc4k4oabt7z4q9e07sfmlmzr";

 //↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

 // 调试用,创建TXT日志文件夹路径
 public static String log_path = "D:\";

 // 字符编码格式 目前支持 gbk 或 utf-8
 public static String input_charset = "utf-8";

 // 签名方式 不需修改
 public static String sign_type = "MD5";

 public static String payment_type = "1";
    //必填,不能修改
    //服务器异步通知页面路径
 public static  String notify_url = "notify_url.jsp";
    //需http://格式的完整路径,不能加?id=123这类自定义参数

    //页面跳转同步通知页面路径
 public static  String return_url = "return_url.jsp";
    //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/

    //卖家支付宝帐户
 public static   String seller_email = "jjj@hzdracom.com";
    //必填

    //商户订单号
 public static  String out_trade_no =UtilDate.getOrderNum();
    //商户网站订单系统中唯一订单号,必填

    //订单名称
 public static String subject = "隐号充值";
    //必填

    //订单描述
 public static  String body = "隐号充值";
    //商品展示地址

 public static String show_url ="";
  //防钓鱼时间戳
 public static String anti_phishing_key="";
 
 public static String exter_invoke_ip="";
}

三、strut配置文件


 

以上属于关键代码部分,需要注意的事项有 :

1.需要把支付宝提供的接口的几个类引入到你的项目中,包括架包

2.notify_url.jsp和return_url.jsp地址要做好些成外网地址的全路径

3.你自己的业务处理写notify_url.jsp这个里面,也可以直接写个接口给支付宝接口调用


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/153354.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号