java微信扫码支付
来源:互联网 发布:天刀最丑捏脸数据下载 编辑:程序博客网 时间:2024/06/05 13:34
java 后台
/** * 微信扫码支付 * @param request * @param response * @return * @throws IOException */@RequestMapping(value="/weiXinSaoMaPay",method=RequestMethod.POST)@ResponseBodypublic String weiXinSaoMaPay(HttpServletRequest request,HttpServletResponse response) throws IOException {//获取单号和金额String hunhe = "";String appid = "";String appsecret = "";String mch_id = "";String partnerkey = "";String wangzhi = "";// 获取openId后调用统一支付接口https://api.mch.weixin.qq.com/pay/unifiedorderString currTime = TenpayUtil.getCurrTime();// 8位日期String strTime = currTime.substring(8, currTime.length());// 四位随机数String strRandom = TenpayUtil.buildRandom(4) + "";// 10位序列号,可以自行调整。String strReq = strTime + strRandom;// System.out.println("商户号:" + mch_id);// 随机数String nonce_str = strReq;// 商品描述根据情况修改String body = "批发";String[] shunzu = hunhe.split(",");// 商户订单号String out_trade_no = shunzu[0];// 金额转化为分为单位float sessionmoney = Float.parseFloat(shunzu[1]);String finalmoney = String.format("%.2f", sessionmoney);finalmoney = finalmoney.replace(".", "");int intMoney = Integer.parseInt(finalmoney);// 总金额以分为单位,不带小数点int total_fee = intMoney;// 订单生成的机器 IPString spbill_create_ip = localIp();// 这里notify_url是 支付完成后微信发给该链接信息,可以判断会员是否支付成功,改变订单状态等。String notify_url = wangzhi + "/getChuliShuJu.do";String trade_type = "NATIVE";SortedMap<String, Object> packageParams = new TreeMap<String, Object>();packageParams.put("appid", appid);packageParams.put("mch_id", mch_id);packageParams.put("nonce_str", nonce_str);packageParams.put("body", body);packageParams.put("out_trade_no", out_trade_no);// 这里写的金额为1 分到时修改packageParams.put("total_fee", "1");packageParams.put("spbill_create_ip", spbill_create_ip);packageParams.put("notify_url", notify_url);packageParams.put("trade_type", trade_type);RequestHandler reqHandler = new RequestHandler(request, response);reqHandler.init(appid, appsecret, partnerkey);String sign = reqHandler.createSign(packageParams);String xml = "<xml>" + "<appid>" + appid + "</appid>" + "<mch_id>"+ mch_id + "</mch_id>" + "<nonce_str>" + nonce_str+ "</nonce_str>" + "<sign>" + sign + "</sign>"+ "<body><![CDATA[" + body + "]]></body>"+ "<out_trade_no>"+ out_trade_no+ "</out_trade_no>"+// 金额,这里写的1 分到时修改"<total_fee>" + 1 + "</total_fee>" + "<spbill_create_ip>"+ spbill_create_ip + "</spbill_create_ip>" + "<notify_url>"+ notify_url + "</notify_url>" + "<trade_type>" + trade_type+ "</trade_type>"+"</xml>";GetWxOrderno gd = new GetWxOrderno();//返回的二维码调用链接String code_url = gd.getPayNo("https://api.mch.weixin.qq.com/pay/unifiedorder", xml,"code_url");return code_url;}
获取本机ip
<pre name="code" class="java">/** * 获取本机Ip * * 通过 获取系统所有的networkInterface网络接口 然后遍历 每个网络下的InterfaceAddress组。 * 获得符合 <code>InetAddress instanceof Inet4Address</code> 条件的一个IpV4地址 * @return */ @SuppressWarnings("rawtypes") private String localIp(){ String ip = null; Enumeration allNetInterfaces; try { allNetInterfaces = NetworkInterface.getNetworkInterfaces(); while (allNetInterfaces.hasMoreElements()) { NetworkInterface netInterface = (NetworkInterface) allNetInterfaces.nextElement(); List<InterfaceAddress> InterfaceAddress = netInterface.getInterfaceAddresses(); for (InterfaceAddress add : InterfaceAddress) { InetAddress Ip = add.getAddress(); if (Ip != null && Ip instanceof Inet4Address) { ip = Ip.getHostAddress(); } } } } catch (Exception e) { System.out.println("获取本机Ip失败:异常信息:"+e.getMessage()); } return ip; }
jsp前端
<pre name="code" class="html"><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>测试扫码支付</title><script type="text/javascript"src="${pageContext.request.contextPath}/js2/jquery-1.4.2.min.js"></script><script src="../js/qrcode.js"></script></head><body><div align="center" id="qrcode"></div></body><script type="text/javascript">$.post("${pageContext.request.contextPath}/weiXinSaoMaPay.do",function(re) {//这个地址是Demo.java生成的code_url,这个很关键var url = re;//参数1表示图像大小,取值范围1-10;参数2表示质量,取值范围'L','M','Q','H'var qr = qrcode(10, 'M');qr.addData(url);qr.make();var dom = document.createElement('DIV');dom.innerHTML = qr.createImgTag();var element = document.getElementById("qrcode");element.appendChild(dom);});</script></html>
2 0
- java微信扫码支付
- java 微信扫码支付
- 微信扫码支付Demo(java)
- 网站微信扫码支付java开发
- java支付宝支付
- java微信扫码支付之模式二扫码支付(预支付)
- java支付宝支付,支付手机支付,pc网站支付
- java支付宝支付,支付手机支付,pc网站支付
- java-支付宝支付-支付宝退款
- java 支付宝支付alipay
- java支付宝网站支付
- Java中的支付宝支付
- java利用支付宝支付
- Java支付宝支付集锦
- 支付宝支付Java代码
- java版支付宝支付
- JAVA微信扫码支付模式一功能实现
- JAVA微信扫码支付模式一功能实现
- 获取actionBar 的高度,状态栏高度,view.getLocationxxx()的总结
- Android中TextView的那些事
- Java 8 新特性
- Android ORM框架 greenDAO 使用方法
- DXSDK_June10安装错误
- java微信扫码支付
- sourceinsight设置文件的相对路径
- 二叉树 判断是否为子树解题报告 (百度2016暑期实习笔试)
- Java泛型深入理解
- 堆排序
- 敲一下enter键,完成iOS的打包工作
- logback.xml 常用配置详解
- 两人源代码管理的基本操作
- 5.0 卡片式控件 CardView使用