微信官方提供了微信企业账户付款到微信个人零钱接口,提供企业向用户付款的功能,支持企业通过API接口付款,或通过微信支付商户平台网页功能操作付款。该接口并不是直接所有的商户都拥有,企业要开启必须满足以下两个条件:
, 1,商户号已入90驻日
,2,商户号有30天连续正常交易
满足以上条件就可登录微信支付商户平台,产品中心,开通企业付款。
调用的链接地址:接口链接:微信官方接口文档提供的调用微信企业付款的参数:
参数中最重要是获取用户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> Mapjava实现微信企业付款到个人功能