微信小程序调用微信支付接口
1.开发工具:
2.开发环境:
java+maven
3.开发前准备:
3.1 所需材料
小程序的appid,APPsecret,支付商户号(mch_id),商户密钥(key),付款用户的openid。
3.2 开发模式
4 开发
4.1 小程序端
4.2 java后台
4.2.1 PayUtil.java
4.2.2 Util.java
/** * Util工具类方法 * 获取一定长度的随机字符串,范围0-9,a-z * @param length:指定字符串长度 * @return 一定长度的随机字符串 */ public static String getRandomStringByLength(int length) { String base = "abcdefghijklmnopqrstuvwxyz0123456789"; Random random = new Random(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < length; i++) { int number = random.nextInt(base.length()); sb.append(base.charAt(number)); } return sb.toString(); } /** * Util工具类方法 * 获取真实的ip地址 * @param request * @return */ public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if(StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)){ //多次反向代理后会有多个ip值,第一个ip才是真实ip int index = ip.indexOf(","); if(index != -1){ return ip.substring(0,index); }else{ return ip; } } ip = request.getHeader("X-Real-IP"); if(StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)){ return ip; } return request.getRemoteAddr(); }
4.2.3 WXConst.java
5 可能出现的问题
5.1 商户号
5.2 中文参数
String body = new String(WXConst.title.getBytes("ISO-8859-1"),"UTF-8");
这行很重要,如果报参数索引-2异常,很可能是出现了中文,对中文进行如上处理即可通过。
5.3 invalid spbill_create_ip
上一篇:
uniapp开发微信小程序-2.页面制作