package com.yunniu.farming.test.wxTest;

import org.mybatis.logging.Logger;
import org.mybatis.logging.LoggerFactory;

/**
 * @Description: 提现
 **/
public class WxWithdrawBank {
    private Logger logger = LoggerFactory.getLogger(WxWithdrawBank.class);


//    public void asd() {
//
//
//        SortedMap<String, String> paramMap = new TreeMap<String, String>();
//        paramMap.put("mch_appid", config.getAppID());
//        paramMap.put("mchid", config.getMchID());
//        paramMap.put("nonce_str", WXPayUtil.generateNonceStr());
//        paramMap.put("partner_trade_no", "C" + System.currentTimeMillis());
//        paramMap.put("openid", openId);
//        paramMap.put("check_name", "NO_CHECK");
//        paramMap.put("amount", (money * 100) + "");
//        paramMap.put("desc", "提现");
//        paramMap.put("spbill_create_ip", getIpAddr(request));
//        String sign = WXPayUtil.generateSignature(paramMap, config.getKey(), SignType.MD5);
//        paramMap.put("sign", sign);
//        WXPay pay = new WXPay(config);
//        //          Map<String,String> resMap =  pay.transfer(paramMap);
//
//        Map<String, String> resMap;
//        resMap = pay.processResponseXml(pay.requestWithCert(url, paramMap, config.getHttpConnectTimeoutMs(),
//                config.getHttpReadTimeoutMs()));
//        String resultCode = resMap.get("result_code");
//        if ("SUCCESS".equalsIgnoreCase(resultCode)) {
////走到这里就是提现操作成功了，可以做你自己的业务逻辑了、
//        } else {
//            String err_code = resMap.get("err_code");
//            if ("SYSTEMERROR".equalsIgnoreCase(err_code)) {
//                return R.error().put("msg", err_code);
//            } else if ("NOTENOUGH".equalsIgnoreCase(err_code)) {
//                return R.error().put("msg", err_code);
//            } else {
////在这把两个常见的错提了出来，剩下的统一为未知错误了，如果做个更好一些可以直接传错误信息。
//                return R.error().put("msg", "调用微信提现接口未知错误，请联系管理员！");
//
//            }
//        }
//    }
//
//
//
//public Map enterprice2User(String logKey,String orderNumber,String openId,String fee,String body)throws Exception
//        {
//
//            String url = "  https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
//
//        //1.参数封装 ，作者qq1023732997
//            SortedMap<Object, Object> param = new TreeMap<Object, Object>();
//        param.put("mch_appid",weixinPayProperties.getAppid());// 商户账号appid
//        param.put("mchid",weixinPayProperties.getMchId());// 商户
////        param.put("mch_id", weixinPayProperties.getMchId());// 商户
//        param.put("nonce_str",WXPayUtil.generateNonceStr());// 随机字符串
//        param.put("partner_trade_no",orderNumber);// 交易订单号
////        param.put("out_trade_no", orderNumber);// 交易订单号
//        param.put("openid",openId); // 用户openid
//        param.put("check_name","NO_CHECK"); // 校验用户姓名选项
//        param.put("amount",fee); // 金额
////        param.put("total_fee", fee); // 金额
//        param.put("desc",body);
////        param.put("body", body); // 商品描述
//        param.put("spbill_create_ip",weixinPayProperties.getSpbillCreateIp());
//
//        logger.info(logKey+" weixinPayProperties"+weixinPayProperties);
//        String sign=WXPayUtil.generateSignature(param,weixinPayProperties.getPartnerkey());
//        param.put("sign",sign);
//        logger.info(logKey+" weixinService#enterprice2User:"+param);
//
//        String requestXML = WxUtil.getRequestXml(param);
//
//        String xmlResult=WXHttpCertUtils.doPost(url,requestXML);
//        Map<String, String> mapResult=WXPayUtil.xmlToMap(xmlResult);
//        logger.info(logKey+" weixinService#enterprice2User.wxpay.mp.result:"+mapResult);
//
//        Map<String, String> result=new HashMap<>();
//        result.put("code","500");
//        result.put("message","系统错误");
//
//        // {mchid=1520737191, mch_appid=wx2f030dd8ebda3a63, err_code=NOTENOUGH, return_msg=支付失败, result_code=FAIL, err_code_des=余额不足, return_code=SUCCESS}
//        // 转账成功
//        if("SUCCESS".equalsIgnoreCase(mapResult.get("result_code")))
//        {
//        result.put("code","200");
//        result.put("message","支付成功");
//        }
//        // 转帐失败
//        else if("FAIL".equalsIgnoreCase(mapResult.get("result_code")))
//        {
//        result.put("code","500");
//        // 系统错误需要重试[请先调用查询接口，查看此次付款结果，如结果为不明确状态（如订单号不存在），请务必使用原商户订单号进行重试。
//        if("SYSTEMERROR".equalsIgnoreCase(mapResult.get("err_code")))
//        {
////                result.put("message", "支付成功");]
//        }
//        // 金额超限
//        else if("AMOUNT_LIMIT".equalsIgnoreCase(mapResult.get("err_code")))
//        {
//        result.put("message","金额超限");
//        }
//        // 余额不足
//        else if("NOTENOUGH".equalsIgnoreCase(mapResult.get("err_code")))
//        {
////                result.put("message", "支付成功");
//        }
//        // 超过频率限制，请稍后再试。
//        else if("FREQ_LIMIT".equalsIgnoreCase(mapResult.get("err_code")))
//        {
//        result.put("message","超过频率限制，请稍后再试。");
//        }
//        // 已经达到今日付款总额上限/已达到付款给此用户额度上限
//        else if("MONEY_LIMIT".equalsIgnoreCase(mapResult.get("err_code")))
//        {
//        result.put("message","已经达到今日付款总额上限");
//        }
//        // 无法给非实名用户付款
//        else if("V2_ACCOUNT_SIMPLE_BAN".equalsIgnoreCase(mapResult.get("err_code")))
//        {
//        result.put("message","无法给非实名用户付款");
//        }
//        // 该用户今日付款次数超过限制,如有需要请登录微信支付商户平台更改API安全配置
//        else if("SENDNUM_LIMIT".equalsIgnoreCase(mapResult.get("err_code")))
//        {
//        result.put("message","今日付款次数超过限制");
//        }
//        }
//        else
//        {
//        // 系统错误
//        result.put("code","500");
//        result.put("message","系统错误");
//        }
//
//        return result;
//        }


}
