java实现微信企业付款到个人功能

  

微信官方提供了微信企业账户付款到微信个人零钱接口,提供企业向用户付款的功能,支持企业通过API接口付款,或通过微信支付商户平台网页功能操作付款。该接口并不是直接所有的商户都拥有,企业要开启必须满足以下两个条件:

  

, 1,商户号已入90驻日
  ,2,商户号有30天连续正常交易

  

满足以上条件就可登录微信支付商户平台,产品中心,开通企业付款。
  调用的链接地址:接口链接:微信官方接口文档提供的调用微信企业付款的参数:

  

癹ava实现微信企业付款到个人功能"

  

参数中最重要是获取用户openid和调用接口ip,获取openid可以通过公众号获取,应用端可以直接获取。具体的代码实现如下:

  

封装请求微信企业付款的实体类传输:

        公共类转移实现Serializable {   私有静态最终长serialVersionUID l=1;/* *商户账号appid */公共字符串mch_appid;/* *微信支付商户号*/公共字符串mchid;/* *随机串*/公共字符串nonce_str;/* *签名*/公共字符串标志;/* *商户订单号*/公共字符串partner_trade_no;   *//* *用户id   公共字符串openid;/* *是否校验用户姓名NO_CHECK:不校验真实姓名FORCE_CHECK:强校验真实姓名*/公共字符串check_name;/* *金额单位:分*/公共整数金额;/* *企业付款描述信息*/公共字符串desc;/* * ip地址*/公共字符串spbill_create_ip;   公共字符串getMch_appid () {   返回mch_appid;   }   公共空间setMch_appid(字符串mch_appid) {   这一点。mch_appid=mch_appid;   }   公共字符串getMchid () {   返回mchid;   }   公共空间setMchid(字符串mchid) {   这一点。mchid=mchid;   }   公共字符串getNonce_str () {   返回nonce_str;   }   公共空间setNonce_str(字符串nonce_str) {   这一点。nonce_str=nonce_str;   }   公共字符串getSign () {   返回信号;   }   公共空间setSign(字符串标志){   这一点。符号=符号;   }   公共字符串getPartner_trade_no () {   返回partner_trade_no;   }   公共空间setPartner_trade_no(字符串partner_trade_no) {   这一点。partner_trade_no=partner_trade_no;   }   公共字符串getOpenid () {   返回openid;   }   公共空间setOpenid(字符串openid) {   这一点。openid=openid;   }   公共字符串getCheck_name () {   返回check_name;   }   公共空间setCheck_name(字符串check_name) {   这一点。check_name=check_name;   }   公共整数getAmount () {   返回数量;   }   公共空间setAmount(整数金额){   这一点。数量=数量;   }   公共字符串getDesc () {   返回desc;   }   公共空间setDesc(字符串desc) {   this.desc=desc;   }   公共字符串getSpbill_create_ip () {   返回spbill_create_ip;   }   公共空间setSpbill_create_ip(字符串spbill_create_ip) {   这一点。spbill_create_ip=spbill_create_ip;   }      }   之前      

接口部分代码:

        私人转移转移=new转移();//构造签名的映射   私人SortedMap<对象,Object>参数=new TreeMap<对象,Object> ();//微信的参数   私人WeixinConfigUtils配置=new WeixinConfigUtils ();/* *   *微信提现(企业付款)   */@Action (“weixinWithdraw”)   公共字符串weixinWithdraw () {   字符串openId=request.getParameter (openId);   字符串ip=request.getParameter(“知识产权”);   字符串的钱=request.getParameter(“钱”);   字符串doctorId=request.getParameter (“doctorId”);   如果(StringUtils.isNotBlank(钱),,StringUtils.isNotBlank (ip),,StringUtils.isNotBlank (openId),,StringUtils.isNotBlank (doctorId)) {//参数组   字符串appid=config.appid;   字符串mch_id=config.mch_id;   字符串nonce_str=RandCharsUtils.getRandomString (16);//是否校验用户姓名NO_CHECK:不校验真实姓名FORCE_CHECK:强校验真实姓名   字符串checkName=癗O_CHECK”;//等待确认转账金额,ip, openid的来源   整数金额=Integer.valueOf(钱);   字符串spbill_create_ip=ip;   字符串partner_trade_no=UuIdUtils.getUUID ();//描述   字符串desc="健康由我医师助手提现“量+/100 +“元”;//参数:开始生成第一次签名   参数。把(“appid”,appid);   参数。把(“mch_id”,mch_id);   参数。把(“partner_trade_no”, partner_trade_no);   参数。把(“nonce_str”, nonce_str);   参数。把(openId, openId);   参数。把(“checkName”, checkName);   参数。把(“量”,金额);   参数。把(“spbill_create_ip”, spbill_create_ip);   参数。把(“desc desc);   字符串=WXSignUtils迹象。createSign (“utf - 8”,参数);   transfers.setAmount(数量);   transfers.setCheck_name (checkName);   transfers.setDesc (desc);   transfers.setMch_appid (appid);   transfers.setMchid (mch_id);   transfers.setNonce_str (nonce_str);   transfers.setOpenid (openId);   transfers.setPartner_trade_no (partner_trade_no);   transfers.setSign(信号);   transfers.setSpbill_create_ip (spbill_create_ip);   字符串xmlInfo=HttpXmlUtils.transferXml(转移);   尝试{   CloseableHttpResponse响应=HttpUtil.Post (weixinConstant。WITHDRAW_URL xmlInfo,真实);   字符串transfersXml=EntityUtils.toString (response.getEntity (),“utf - 8”);   String> Map

java实现微信企业付款到个人功能