一、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 = 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
Map
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这个里面,也可以直接写个接口给支付宝接口调用



