微信小程序调用微信支付接口
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.页面制作
