这个相对于支付要简单一些吧,个人理解,没有支付那么多操作,依旧是ssm框架+maven+tomcat8代码如下:

    /*** 提现* @param openid 小程序需要的用户openid* @param money 依旧要求是整数而且提现微信硬性要求是金额必须大于5元的* @throws ParseException*/@RequestMapping(value="pay/deposit",produces = "application/json; charset=utf-8")@ResponseBodypublic String deposit(String openid,double money,HttpServletRequest req) throws ParseException{JSONObject json = new JSONObject();double price=money*100;int a=(int)price;String ip = new GetIpAddress().getIP(req);String times = System.currentTimeMillis() + "";//是否校验用户姓名 NO_CHECK:不校验真实姓名  FORCE_CHECK:强校验真实姓名String checkName ="NO_CHECK";//等待确认转账金额,ip,openid的来源//描述String desc = money+"$";SortedMap<Object, Object> parameters = new TreeMap<Object, Object>();// 参数:开始生成第一次签名parameters.put("mch_appid", 小程序的qppid);parameters.put("mchid", 商家号);parameters.put("partner_trade_no", 随便什么字符串就可以小于32位自己任意写一个生成规则);parameters.put("nonce_str", times);parameters.put("openid", openid);parameters.put("check_name", "NO_CHECK");parameters.put("amount", a);parameters.put("spbill_create_ip", ip);parameters.put("desc", desc);String sign = PayCommonUtil.createSign("UTF-8", parameters);parameters.put("sign", sign);String xmlInfo = PayCommonUtil.getRequestXml(parameters,"UTF-8");try {CloseableHttpResponse response =  HttpUtil.Post("https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers", xmlInfo, true);String transfersXml = EntityUtils.toString(response.getEntity(), "utf-8");Map<String, String> transferMap = XMLUtil.doXMLParse(transfersXml);if (transferMap.size()>0) {if (transferMap.get("result_code").equals("SUCCESS") && transferMap.get("return_code").equals("SUCCESS")) {//这里边就是需要成功之后的业务逻辑代码}}} catch (Exception e) {e.printStackTrace();json.put("mes", "企业支付异常!"+e.getMessage());json.put("code", "403");}return json.toString();}

*一定要注意这些参数名,我当初做的时候不知道是怎么弄的参数名错了,个人又是比较粗心的找了好久的错,后来还是别人帮忙找出来的,写提现的接口的时候遇到两个错吧,这是第一个第二个待续。

帮助类:

public static String createSign(String characterEncoding,SortedMap<Object,Object> parameters){StringBuffer sb = new StringBuffer();Set es = parameters.entrySet();//所有参与传参的参数按照accsii排序(升序)Iterator it = es.iterator();while(it.hasNext()) {Map.Entry entry = (Map.Entry)it.next();String k = (String)entry.getKey();Object v = entry.getValue();if(null != v && !"".equals(v) && !"sign".equals(k) && !"key".equals(k)) {sb.append(k + "=" + v + "&");}}sb.append("key=" + appkey开发平台是有的);String sign = MD5.MD5Encode(sb.toString(), characterEncoding).toUpperCase();return sign;}public static CloseableHttpResponse Post(String url, String outputEntity, boolean isLoadCert) throws Exception {HttpPost httpPost = new HttpPost(url);// 得指明使用UTF-8编码,否则到API服务器XML的中文不能被成功识别httpPost.addHeader("Content-Type", "text/xml");httpPost.setEntity(new StringEntity(outputEntity, "UTF-8"));if (isLoadCert) {// 加载含有证书的http请求return HttpClients.custom().setSSLSocketFactory(CertUtil.initCert()).build().execute(httpPost);} else {return HttpClients.custom().build().execute(httpPost);}}

*这就是第二个错的存在就是那个appkey我写成商户号了,这也是没认真看文档的原因吧,文字型东西太枯燥了,文档还是很重要的,下次注意吧

编辑成xml

public class XMLUtil {public static Map doXMLParse(String strxml) throws Exception {  strxml = strxml.replaceFirst("encoding=\".*\"", "encoding=\"UTF-8\"");  if(null == strxml || "".equals(strxml)) {  return null;  }  Map m = new HashMap();  InputStream in = new ByteArrayInputStream(strxml.getBytes("UTF-8"));  SAXBuilder builder = new SAXBuilder();  Document doc = builder.build(in);  Element root = doc.getRootElement();  List list = root.getChildren();  Iterator it = list.iterator();  while(it.hasNext()) {  Element e = (Element) it.next();  String k = e.getName();  String v = "";  List children = e.getChildren();  if(children.isEmpty()) {  v = e.getTextNormalize();  } else {  v = XMLUtil.getChildrenText(children);  }  m.put(k, v);  }  //关闭流  in.close();  return m;  }  /** * 获取子结点的xml * @param children * @return String */  public static String getChildrenText(List children) {  StringBuffer sb = new StringBuffer();  if(!children.isEmpty()) {  Iterator it = children.iterator();  while(it.hasNext()) {  Element e = (Element) it.next();  String name = e.getName();  String value = e.getTextNormalize();  List list = e.getChildren();  sb.append("<" + name + ">");  if(!list.isEmpty()) {  sb.append(XMLUtil.getChildrenText(list));  }  sb.append(value);  sb.append("</" + name + ">");  }  }  return sb.toString();  }  }

到此就结束了,反正第一次接触就是各种问题,还是自己能力不够的原因吧,虽然弄出来了可能还是有些理解的不对,但是我在网上没找到完整的demo也是很难受的,就想着自己做好了分享出来,也方便自己下次看吧

微信提现(商户向商家转账)相关推荐

  1. cms小猪o2o企业付款配置中微信提现配置实现商家转账到零钱(企业付款到零钱)解决:“操作失败!产品权限验证失败,请查看您当前是否具有该产品的权限“的错误提示

    先说下概念什么是商家转账到零钱?其实这个功能是由企业付款到零钱功能演变过来的,微信支付里面在2022年5月之前这个功能一直叫"企业付款到零钱"后来因为业务需求改成了"商家 ...

  2. 基于微信云开发的商家转账至零钱

    基于微信云开发的商家转账至零钱 相关简介 开通功能 阅读文档 技术框架 配置环境 编写代码 注意事项 相关参考 相关简介 本篇文章主要介绍如何通过微信云开发的云函数实现商家转账到零钱.(让那些没有服务 ...

  3. 微信商户号商家转账到零钱v3接口证书生成步骤

    先打开命令窗口,按以下步骤做,电脑系统随意,建议是linux或macOs 一.生成时间戳 jzp@MacMini ~ % date +%s 注:时间是5分钟有效 结果:1672114604 二.生成一 ...

  4. 怎么开通商家转账到零钱?

    目录 定义与场景 开通条件 产品优势 权限申请实操 个人浅谈 定义与场景 商家转账到零钱是微信支付商户平台推出的运营工具,可以为商户提供向一个或者同时向多个用户微信零钱转账的能力,商户可免费使用.商户 ...

  5. 商家转账到零钱快速开通方法

    什么是商家转账到零钱? 商家转账提供商户同时向多个用户微信零钱转账的能力.商户可以使用商家转账用于费用报销.员工福利发放.合作伙伴货款或服务款项支付等场景,提高转账效率. 都知道官网开通这个功能条件有 ...

  6. 什么是商家转账到零钱

    1. 什么是商家转账到零钱 商家转账到零钱为商户提供向一个或者同时向多个用户微信零钱转账的能力,商户可免费使用. 1.1. 使用场景 商户可以使用商家转账用于现金营销.分销返佣.行政补贴.行政奖励.保 ...

  7. 如何提升商家转账到零钱的免密支付额度 总限额及笔数

    商家转账提供商户同时向多个用户微信零钱转账的能力,商户可以使用商家转账,用于费用的报销.员工福利发放.合作伙伴贷款及服务款项支付等多种场景,提高转账效率. 产品特点 高效:支持页面及API接口转账方式 ...

  8. 商家转账到零钱快速开通?额度不够用?提额申请如何怎么才能通过?

    原"企业付款到零钱"已升级为"商家转账到零钱",已开通商户的功能使用暂不受影响,新开通商户可前往「产品中心 -商家转账到零钱 使用APIV3版本接口文档,官方文 ...

  9. PHP实现微信提现V3版本2022-5更新接口:商家转账到零钱

    微信官方又更新了接口... V3版本的微信商家转账到零钱的接口---俗称提现接口 注意事项 一:开通条件:需满足入驻满90天,连续正常交易30天,保持正常健康交易. 二:分为页面发起和api接口操作, ...

  10. 平台资金提现解决方案之实现微信商家转账到零钱功能

    大家好,我是小悟 使用场景 不管是做APP.电脑网站.手机网站还是小程序,为了推广基本上都离不开用户分佣的场景. 换句话说就是在其平台内为每个用户设置"电子钱包"功能,而电子钱包在 ...

最新文章

  1. 软件开发 自由职业_自由职业? 这里有7个可以出售软件开发服务的地方
  2. sql注入,预编译和事务
  3. 16 Java面试之 HTML
  4. 天津Uber优步司机奖励政策(1月4日~1月10日)
  5. python 笛卡尔积,排列,组合
  6. IDEA 引入传统 j2ee spring mvc
  7. linux培训笔记1
  8. 排序算法:简单选择排序算法实现及分析
  9. leetcode python3 简单题191. Number of 1 Bits
  10. Echarts鼠标悬浮样式
  11. python 历遍数列找出大于一个数的值_找出数列中个数大于总数一半的元素(编程之美2.3)...
  12. python 电话簿排序
  13. ffmpeg将webm格式转换成mp4
  14. 微软使用“钞能力”: 687 亿美元收购动视暴雪!
  15. 中华英才网竞品分析报告2016
  16. mathtype公式编辑器设置字母正体斜体的方法
  17. Alibaba微服务组件Sentinel
  18. S3DIS Dataset下载
  19. R绘制股票走势图及年份成交量图
  20. Go语言读取文件的常用方式

热门文章

  1. java版微信调小i机器人接口说明书_java版微信调用小i机器人
  2. python爬虫-抓取内涵吧内涵段子
  3. 834 计算机专业基础综合参考书,2018年上海大学834计算机科学专业基础综合考研复习资料...
  4. 小分子PEG的循环节可以做到1-36个,DSPE-PEG4-Mal
  5. dede标签属性(转载)
  6. win7环境安装ubuntu16.04双系统
  7. Java练手项目:点菜系统
  8. 风光过后就崩溃,互联网公司让你心好累
  9. 国企安逸?我笑了……
  10. 怎么把ppt弄成链接的形式_怎么把ppt改成pptx_把pptx转换成ppt的方法