有1年多没搞微信支付了,最近跳槽,要重做APP,又来接触微信这个坑比。OK,不多说,上代码。以下是我的一个controller类,重点在下面
// 微信交易类型
private static final String TRADETYPE = "APP";
// 微信统一下单接口路径
private static final String UNIFORMORDER = "https://api.mch.weixin.qq.com/pay/unifiedorder";
// 微信回调地址
private static final String NOTIFYURL = "*****";
// 微信商户号:*****
private static final String MCHID = "******";
//微信APIKEY
private static final String APIKEY ="*******";
//微信APPID
private static final String APPID ="*******";
/**
* @Description: Ajax生成微信预支付ID
* @param entity
* @return JsonResult
* @throws JSONException
* @throws UnsupportedEncodingException
*/
@RequestMapping(value = "/getPrepayId",method = RequestMethod.POST)
@ResponseBody
public String getPrepayId(HttpServletRequest request) throws UnsupportedEncodingException {
ResultObject result = new ResultObject(false);// 返回数据结果集合
request.setCharacterEncoding("UTF-8");
try {
// 订单编号
String out_trade_no = request.getParameter("out_trade_no") == null ? null : request.getParameter("out_trade_no").trim();// 订单编号
// 消费金额
String money = request.getParameter("money") == null ? null : request.getParameter("money").trim();// 消费金额
// 消费主题
String subject = request.getParameter("subject") == null ? null : request.getParameter("subject").trim();// 消费主体
if(StringUtils.isEmpty(out_trade_no)){
result.setMsg("参数:out_trade_no 为空");
result.setResultCode("-1");
return JSON.toJSONString(result);
}
if(StringUtils.isEmpty(money)){
result.setMsg("参数:money 为空");
result.setResultCode("-1");
return JSON.toJSONString(result);
}
if(StringUtils.isEmpty(subject)){
result.setMsg("参数:subject 为空");
result.setResultCode("-1");
return JSON.toJSONString(result);
}
String total_fee = "";