文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

利用java怎么实现一个即时提交功能

2023-05-31 07:30

关注

本篇文章给大家分享的是有关利用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<String, String> map = new HashMap<String, String>();      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<String, String> 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<String, String> 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 += "&#63;" + str;      }      return url;      // 注:如果失败考虑      // 1.response 重定向编码      // 2.sign_type 放置参数末尾      // 3.url 追加 _input_charset=utf-8    } catch (Exception e) {      e.printStackTrace();      return "-2";    }  }  ///////////////////////////////////////////////////////    public static Map<String, String> paraFilter(Map<String, String> sArray) {    Map<String, String> result = new HashMap<String, String>();    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<String, String> 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<String, String> params) {    List<String> keys = new ArrayList<String>(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);    }  }}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯