微信小程序提现

/**
     * 微信提现(企业付款)
     */
    @RequestMapping(value = "/weixinWithdraw", method = RequestMethod.POST)
    @ResponseBody
    public Object weixinWithdraw(String openId,Double cashMoney, HttpServletRequest request, HttpServletResponse response) throws Exception {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
   
        
            // 参数组
            String appid = WeiXinPayConfig.appid;
            String mch_id = WeiXinPayConfig.mch_id;
            String nonce_str = WXPayUtil.generateNonceStr();
            String spbill_create_ip = WeiXinPayConfig.spbilCreateIp;

            //是否校验用户姓名 NO_CHECK:不校验真实姓名  FORCE_CHECK:强校验真实姓名
            String checkName = "NO_CHECK";

            String partner_trade_no = cn.stylefeng.guns.core.util.StringUtils.getId();
            //描述
            String desc = "提现" + cashMoney + "元";
            System.err.println(desc);
            // 参数:开始生成第一次签名
            SortedMap<Object, Object> parameters = new TreeMap<Object, Object>();
            parameters.put("mch_appid", appid);
            parameters.put("mchid", mch_id);
            parameters.put("partner_trade_no", partner_trade_no);
            parameters.put("nonce_str", nonce_str);
            parameters.put("openid", openId);
            parameters.put("check_name", checkName);
            parameters.put("amount", cashMoney);
            parameters.put("spbill_create_ip", spbill_create_ip);
            parameters.put("desc", desc);
            //获取sign
            String sign = PayCommonUtil.createSign("UTF-8", parameters, paternerKey);//最后这个是自己在微信商户设置的32位密钥
            parameters.put("sign", sign);
            //转成XML
            String requestXML = PayCommonUtil.getRequestXml(parameters);
            try { 
                HttpPost httpPost=new HttpPost("https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers");
                // 得指明使用UTF-8编码,否则到API服务器XML的中文不能被成功识别
                httpPost.addHeader("Content-Type", "text/xml");
                StringEntity stringEntity = new StringEntity(requestXML, "UTF-8");
                httpPost.setEntity(stringEntity);

                //加载含有证书的http请求
                HttpResponse response1 = initCert(request).execute(httpPost);
                HttpEntity entity = response1.getEntity();

                //得到返回结果的XML
                String notityXml = EntityUtils.toString(entity, "UTF-8");
                System.err.println("resXml-----" + notityXml);
				String resXml = "";
                Map transferMap = XMLUtil.doXMLParse(notityXml);
                System.out.println(transferMap);
                if (transferMap.size() > 0) {
                    if (transferMap.get("result_code").equals("SUCCESS") && transferMap.get("return_code").equals("SUCCESS")) {
                        //成功需要进行的逻辑操作,

                       
                        }else {
                            System.out.println("失败");
                            return new ErrorResponseData(transferMap.get("result_msg").toString());
                        }

                    }
                }

                System.out.println("成功");
            } catch (Exception e) {
               e.getMessage();
            }
       
        return new SuccessResponseData("1");

    }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值