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

java支付宝即时到帐提交订单功能

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

java支付宝即时到帐提交订单功能

本文实例为大家分享了java支付宝即时到帐提交订单的具体代码,供大家参考,具体内容如下

package com.tian.batis;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.codec.digest.DigestUtils;
import javax.servlet.http.HttpServletResponse;

public class alipay {
  
  public String AlipayPayment(String _input_charset, String subject, String notify_url, String body,
      String payment_type, String out_trade_no, String partner, String service, Integer total_fee,
      String return_url, String sign_type, String seller_id, HttpServletResponse response, String sessionId) {
    try {
      String strSandbox = "https://mapi.alipay.com/gateway.do";// 地址
      ConfigManager configManager = ConfigManager.getInstance("alipayconfig.properties");

      Map map = new HashMap();

      if (null != subject && subject.trim().length() > 0) {
 map.put("subject", subject);
      } else {
 return "-1";
      }

      if (null != out_trade_no && out_trade_no.trim().length() > 0) {
 map.put("out_trade_no", out_trade_no);
      } else {
 return "-1";
      }

      if (null != total_fee && total_fee > 0) {
 map.put("total_fee", total_fee + "");
 // map.put("total_fee", "0.01");
      } else {
 return "-1";
      }

      if (null != _input_charset && _input_charset.trim().length() > 0) {
 map.put("_input_charset", _input_charset);
      } else {
 map.put("_input_charset", configManager.getConfigItem("alipay._input_charset").toString());
      }

      if (null != notify_url && notify_url.trim().length() > 0) {
 map.put("notify_url", notify_url);
      } else {
 map.put("notify_url", configManager.getConfigItem("alipay.notify_url1").toString());
      }

      if (null != return_url && return_url.trim().length() > 0) {
 map.put("return_url", return_url);
      } else {
 map.put("return_url", configManager.getConfigItem("alipay.return_url").toString());
      }

      if (null != payment_type && payment_type.trim().length() > 0) {
 map.put("payment_type", payment_type);
      } else {
 map.put("payment_type", configManager.getConfigItem("alipay.payment_type").toString());
      }

      if (null != partner && partner.trim().length() > 0) {
 map.put("partner", partner);
      } else {
 map.put("partner", configManager.getConfigItem("alipay.partner").toString());
      }

      if (null != service && service.trim().length() > 0) {
 map.put("service", service);
      } else {
 map.put("service", configManager.getConfigItem("alipay.service").toString());
      }

      if (null != sign_type && sign_type.trim().length() > 0) {
 map.put("sign_type", sign_type);
      } else {
 map.put("sign_type", configManager.getConfigItem("alipay.sign_type").toString());
      }

      if (null != seller_id && seller_id.trim().length() > 0) {
 map.put("seller_id", seller_id);
      } else {
 map.put("seller_id", configManager.getConfigItem("alipay.seller_id").toString());
      }

      if (null != body && body.trim().length() > 0) {
 map.put("body", body);
      }

      if (null != sessionId && sessionId.trim().length() > 0) {
 map.put("extra_common_param", sessionId);
      }

      Map sPara = paraFilter(map);
      // 生成签名结果
      String sign = buildRequestMysign(sPara, configManager.getConfigItem("alipay.key").toString(),
   configManager.getConfigItem("alipay._input_charset").toString());
      map.put("sign", sign);

      String str = "";
      for (Map.Entry entry : map.entrySet()) {
 String key = entry.getKey();
 String value = entry.getValue();
 if (key.equals("subject") || key.equals("body")) {
   value = URLEncoder.encode(value, "UTF-8");
 }
 if (null != str && str.trim().length() > 0) {
   str += "&" + key + "=" + value;
 } else {
   str += key + "=" + value;
 }
      }

      String url = strSandbox;
      if (null != str && str.trim().length() > 0) {
 url += "?" + str;
      }
      return url;
      // 注:如果失败考虑
      // 1.response 重定向编码
      // 2.sign_type 放置参数末尾
      // 3.url 追加 _input_charset=utf-8
    } catch (Exception e) {
      e.printStackTrace();
      return "-2";
    }
  }
  ///////////////////////////////////////////////////////
  
  public static Map paraFilter(Map sArray) {
    Map result = new HashMap();
    if (sArray == null || sArray.size() <= 0) {
      return result;
    }
    for (String key : sArray.keySet()) {
      String value = sArray.get(key);
      if (value == null || value.equals("") || key.equalsIgnoreCase("sign")
   || key.equalsIgnoreCase("sign_type")) {
 continue;
      }
      result.put(key, value);
    }
    return result;
  }
  
  
  public static String buildRequestMysign(Map sPara, String key, String input_charset) {
    String prestr = createlinkString(sPara); // 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
    String mysign = "";
    mysign = sign(prestr, key, input_charset);
    return mysign;
  }
  
  
  public static String createlinkString(Map params) {
    List keys = new ArrayList(params.keySet());
    Collections.sort(keys);
    String prestr = "";
    for (int i = 0; i < keys.size(); i++) {
      String key = keys.get(i);
      String value = params.get(key);

      if (i == keys.size() - 1) {// 拼接时,不包括最后一个&字符
 prestr = prestr + key + "=" + value;
      } else {
 prestr = prestr + key + "=" + value + "&";
      }
    }
    return prestr;
  }
  
  public static String sign(String text, String key, String input_charset) {
    text = text + key;
    return DigestUtils.md5Hex(getContentBytes(text, input_charset));
  }
  
  
  private static byte[] getContentBytes(String content, String charset) {
    if (charset == null || "".equals(charset)) {
      return content.getBytes();
    }
    try {
      return content.getBytes(charset);
    } catch (UnsupportedEncodingException e) {
      throw new RuntimeException("MD5签名过程中出现错误,指定的编码集不对,您目前指定的编码集是:" + charset);
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

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

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

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