本篇文章给大家分享的是有关利用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 += "?" + 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
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容猜你喜欢
AI推送时光机利用java怎么实现一个即时提交功能
后端开发2023-05-31
利用java怎么实现一个倒计时功能
后端开发2023-05-31
利用Java怎么实现一个单词提取功能
后端开发2023-05-30
利用Java怎么实现一个画板功能
后端开发2023-05-31
使用Servlet怎么实现一个表单提交功能
后端开发2023-05-31
利用java怎么实现一个网页爬虫功能
后端开发2023-05-31
利用java怎么实现一个动态加载功能
后端开发2023-05-31
利用java怎么实现一个四舍五入功能
后端开发2023-05-31
利用Java怎么实现一个邮箱激活功能
后端开发2023-05-31
利用numpy怎么实现一个RNN功能
后端开发2023-06-06
利用Java怎么编写一个倒计时功能
后端开发2023-05-31
利用Android实现一个倒计时功能
后端开发2023-05-31
利用Java怎么实现一个验证身份证功能
后端开发2023-05-31
利用java如何实现一个DataSource功能
后端开发2023-05-31
怎么在Java中利用JDBC实现一个事务功能
后端开发2023-05-30
Html5 中怎么利用FileReader实现即时上传图片功能
后端开发2024-04-02
怎么在Android中利用CountDownTimer实现一个倒计时功能
后端开发2023-05-30
利用servlet怎么实现一个转发功能
后端开发2023-05-31
利用struts1怎么实现一个登录功能
后端开发2023-05-31
利用java怎么实现一个将图片去色的功能
后端开发2023-05-31
咦!没有更多了?去看看其它编程学习网 内容吧