public static Object weixin_pay(String subject,String totalAmount,MetroMainModel metroMainModel,String strType,String code) throws Exception {
// 账号信息
String appid = SysConfig.APP_ID; // appid
System.out.println(appid+"ddddddddddddddddddddd");
String mch_id = SysConfig.MCH_ID; // 商业号
System.out.println(mch_id+"gggggggggggggg");
String key = SysConfig.API_KEY; // key
/* totalAmount subject subject metroMainModel.getOrderID() strType*/
System.out.println(key+"hhhhhhhhhhhhhhhhh");
String currTime = PayToolUtil.getCurrTime();
String strTime = currTime.substring(8, currTime.length());
String strRandom = PayToolUtil.buildRandom(4) + "";
String nonce_str = strTime + strRandom;
String order_price = totalAmount ; // 价格 注意:价格的单位是分
String body = URLDecoder.decode(subject,"UTF-8");; // 商品名称
// 获取发起电脑 ip
String spbill_create_ip = SysConfig.CREATE_IP;
System.out.println(spbill_create_ip+"bbbbbbbbbbbbbb");
// 回调接口
String notify_url = SysConfig.NOTIFY_URL;
System.out.println(notify_url+"bbbbbbbfffffffffbbbbbbb");
String trade_type = strType;
// String trade_type = "JSAPI";
SortedMap<Object,Object> packageParams = new TreeMap<Object,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", metroMainModel.getOrderID());
packageParams.put("total_fee", order_price);
packageParams.put("spbill_create_ip", spbill_create_ip);
packageParams.put("notify_url", notify_url);
packageParams.put("trade_type", trade_type);
packageParams.put("device_info", metroMainModel.getDevID());
if ("JSAPI".equals(strType)) {
String openid = getWeiXinOpenID(code);
packageParams.put("openid", openid);
}
String sign = PayToolUtil.createSign("UTF-8", packageParams,key);
packageParams.put("sign", sign);
String requestXML = PayToolUtil.getRequestXml(packageParams);
LogUtil.writeLog("[MCPP >> Weixin] orderId="+metroMainModel.getOrderID()+"微信预下单请求"+requestXML);
String resXml = HttpUtil.postData(SysConfig.UFDODER_URL, requestXML);
System.out.println(resXml+"KKKKKKKKKKKKKKKKKKKKKK");
LogUtil.writeLog("[MCPP << Weixin] orderId="+metroMainModel.getOrderID()+"微信预下单结果"+resXml);
Map map = XMLUtil4jdom.doXMLParse(resXml);
if ("JSAPI".equals(strType)) {
Map returnMap = new HashMap();
returnMap.put("prepay_id", 1);
returnMap.put("sign", sign);
return returnMap;
}else {
String urlCode = (String) map.get("code_url");
String return_code = (String) map.get("return_code");
if ("SUCCESS".equals(return_code)) {
metroMainModel.setPayType(2);
metroMainModel.setOrderTime(DateUtil.getNowDateByFormat(""));
/*MeTroUtil.insertMetro(metroMainModel);*/
}
return urlCode;
}
}
微信支付 java 截取主要方法
最新推荐文章于 2021-12-07 20:02:07 发布
