支付宝h5支付对接
来源:互联网 发布:高维数据进行降维 编辑:程序博客网 时间:2024/06/10 09:06
不用支付宝的api。太恶心了2M多。献给对接支付宝h5支付的小伙伴们public static void main(String[] args) throws UnsupportedEncodingException {Map<String, String> requestMap = new TreeMap<String, String>();//涉及到排序用treemapMap<String, String> bizMap = new TreeMap<String, String>();//这个可用hashmaprequestMap.put("app_id", "");//支付宝分配的商户;requestMap.put("method", "alipay.trade.wap.pay");requestMap.put("return_url","");//前端回调地址requestMap.put("charset", "utf-8");requestMap.put("sign_type", "RSA");//用的rsa rsa2的自行百度 实际差不多requestMap.put("timestamp", DateUtil.formatDate(new Date(), DateUtil.DATETIME));requestMap.put("version", "1.0");requestMap.put("notify_url", "");//后端回调地址bizMap.put("body", "");bizMap.put("subject", "");bizMap.put("out_trade_no", "");bizMap.put("total_amount", "0.01");bizMap.put("product_code", "QUICK_WAP_WAY");bizMap.put("seller_id", "");requestMap.put("biz_content", JSONObject.toJSONString(bizMap));String signParam = map2HttpParams(requestMap);requestMap.put("sign", sign(signParam, "替换为你的签名私匙","utf-8"));for (String key : requestMap.keySet()) {if ("biz_content".equals(key)) {// 不对biz_content这个json串进行编码,看清楚喔,少踩坑requestMap.put(key, requestMap.get(key));} else {requestMap.put(key, URLEncoder.encode(requestMap.get(key), "utf-8"));}}String requestParamString=map2HttpParams(requestMap);System.out.println("支付宝请求url = " + "https://openapi.alipay.com/gateway.do?" +requestParamString);//查询验签我就不贴出来了 都差不多,但是一定要注意// 我用的net.sf.json,阿里的 fastjson在解析json对象源码中会new HashMap 会打乱原本的字符串顺序。}/*** 将map转换为 http请求参数串*/public static String map2HttpParams(Map<String, String> map) {if (map == null || map.size()==0) {return "";}StringBuffer sb = new StringBuffer();for (Map.Entry<String, String> entry : map.entrySet()) {if (null == entry.getValue() || "".equals(entry.getValue())) {continue;}sb.append(entry.getKey() + "=" + entry.getValue());sb.append("&");}String s = sb.toString();if (s.endsWith("&")) {s = StringUtils.substringBeforeLast(s, "&");}return s;}public static String sign(String content, String privateKey, String input_charset) { try { PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec( Base64.decode(privateKey) ); KeyFactory keyf = KeyFactory.getInstance("RSA"); PrivateKey priKey = keyf.generatePrivate(priPKCS8); java.security.Signature signature = java.security.Signature .getInstance("SHA1WithRSA");//如果是rsa2对应选择rsa2的 signature.initSign(priKey); signature.update( content.getBytes(input_charset) ); byte[] signed = signature.sign(); return Base64.encode(signed); } catch (Exception e) { } return null; }
阅读全文
0 0
- 支付宝h5支付对接
- 对接支付宝支付
- 支付宝国际支付 对接
- Android支付宝支付对接
- 对接支付宝支付接口
- 支付宝对接支付问题
- 支付宝接口对接
- 支付宝对接方式
- h5页面 支付宝支付
- 支付宝无线快捷支付对接注意事项
- 支付宝支付接口对接的总结
- 服务端支付宝App支付对接笔记
- .NET WEB API 对接支付宝支付
- 网站对接支付宝进行支付
- (转载)对接【支付宝】支付接口
- 支付宝”电脑网站支付“接口对接
- 支付宝SDK对接资料
- java wap 支付宝对接
- 第十一周 【项目3
- nginx配置起服务
- 矩阵定义收集
- 一句代码搞定数组去重 Set()
- SATD matlab 代码
- 支付宝h5支付对接
- 第9周项目3- 利用二叉树遍历思想解决问题(1)
- cmake 入门编程之动态加载第三方库(2)
- Python语法关注点相对于c/c++(二)
- 第七周项目4
- Struts2自定义<s:a>标签后报出空指针异常
- CentOS7使用firewalld打开关闭防火墙与端口
- Android获取状态栏高度
- MySQL在大型网站的应用架构演变