小程序
小游戏
企业微信
微信支付
扫描小程序码分享
单号如下:
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
发下提现的代码看看
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
Map paramMap = new HashMap();
paramMap.put("mch_appid", config.getAppID());
paramMap.put("mchid", config.getMchID());
paramMap.put("nonce_str", WXPayUtil.generateNonceStr());
paramMap.put("partner_trade_no", order.getOrderNo());
paramMap.put("openid", wxUser.getOpenId());
paramMap.put("check_name", "NO_CHECK");
//转换 类型 这里可以去百度下,如果这样写会报错 金额的格式错误
BigDecimal total = dto.getPrice().multiply(new BigDecimal(100));
paramMap.put("amount", total.intValue());
paramMap.put("desc", "提现");
//这里就是在上个代码里面的回调地址 没啥用
paramMap.put("spbill_create_ip", mallConfigProperties.getNotifyHost()+"/weixin/api/ma/cash/notify");
String sign = WXPayUtil.generateSignature(getSortedMap(paramMap), config.getKey(), WXPayConstants.SignType.MD5);
paramMap.put("sign", sign);
WXPay pay = new WXPay(config);
//String url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
Map<String, String> resMap;
String xmlStr = pay.requestWithCert(mallConfigProperties.getCashUrl(), getSortedMap(paramMap), config.getHttpConnectTimeoutMs(), config.getHttpReadTimeoutMs());
log.info("提现响应参数"+xmlStr);
//调用解析xml工具
resMap = XmlUtil.readStringXmlOut(xmlStr);
log.info("提现解析参数:"+resMap);
//判断 返回的里面有没有SUCCESS 代表成功
String resultCode = resMap.get("result_code");
if ("SUCCESS".equalsIgnoreCase(resultCode)) {
try {
rechargeOrderService.notifyResult(order);
} catch (Exception e) {
log.info("提现成功,订单处理失败===",e);
}
return AjaxResult.success();
} else {
String err_code = resMap.get("err_code");
if ("SYSTEMERROR".equalsIgnoreCase(err_code)) {
return AjaxResult.error(err_code,"提现失败");
} else if ("NOTENOUGH".equalsIgnoreCase(err_code)) {
//在这把两个常见的错提了出来,剩下的统一为未知错误了,如果做个更好一些可以直接传错误信息。
return AjaxResult.error(err_code, "调用微信提现接口未知错误,请联系管理员!");
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
发下提现的代码看看
Map paramMap = new HashMap();
paramMap.put("mch_appid", config.getAppID());
paramMap.put("mchid", config.getMchID());
paramMap.put("nonce_str", WXPayUtil.generateNonceStr());
paramMap.put("partner_trade_no", order.getOrderNo());
paramMap.put("openid", wxUser.getOpenId());
paramMap.put("check_name", "NO_CHECK");
//转换 类型 这里可以去百度下,如果这样写会报错 金额的格式错误
BigDecimal total = dto.getPrice().multiply(new BigDecimal(100));
paramMap.put("amount", total.intValue());
paramMap.put("desc", "提现");
//这里就是在上个代码里面的回调地址 没啥用
paramMap.put("spbill_create_ip", mallConfigProperties.getNotifyHost()+"/weixin/api/ma/cash/notify");
String sign = WXPayUtil.generateSignature(getSortedMap(paramMap), config.getKey(), WXPayConstants.SignType.MD5);
paramMap.put("sign", sign);
WXPay pay = new WXPay(config);
//String url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
Map<String, String> resMap;
String xmlStr = pay.requestWithCert(mallConfigProperties.getCashUrl(), getSortedMap(paramMap), config.getHttpConnectTimeoutMs(), config.getHttpReadTimeoutMs());
log.info("提现响应参数"+xmlStr);
//调用解析xml工具
resMap = XmlUtil.readStringXmlOut(xmlStr);
log.info("提现解析参数:"+resMap);
//判断 返回的里面有没有SUCCESS 代表成功
String resultCode = resMap.get("result_code");
if ("SUCCESS".equalsIgnoreCase(resultCode)) {
try {
rechargeOrderService.notifyResult(order);
} catch (Exception e) {
log.info("提现成功,订单处理失败===",e);
}
return AjaxResult.success();
} else {
String err_code = resMap.get("err_code");
if ("SYSTEMERROR".equalsIgnoreCase(err_code)) {
return AjaxResult.error(err_code,"提现失败");
} else if ("NOTENOUGH".equalsIgnoreCase(err_code)) {
return AjaxResult.error(err_code,"提现失败");
} else {
//在这把两个常见的错提了出来,剩下的统一为未知错误了,如果做个更好一些可以直接传错误信息。
return AjaxResult.error(err_code, "调用微信提现接口未知错误,请联系管理员!");
}
}