企业付款到零钱是微信支付对外开放的能力,官方文档:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_1
涉及到的签名算法,文档写的并不详细,我们线上的此部分代码应该能帮到大家:
public static String getSign(Map<String, String> params, String paternerKey) throws UnsupportedEncodingException {
return EnDecryptUtil.MD5(createSign(params, false) + "&key=" + paternerKey).toUpperCase();
}
/**
* 构造签名
*
* @param params
* @param encode
* @return
* @throws UnsupportedEncodingException
*/
public static String createSign(Map<String, String> params, boolean encode) throws UnsupportedEncodingException {
Set<String> keysSet = params.keySet();
Object[] keys = keysSet.toArray();
Arrays.sort(keys);
StringBuffer temp = new StringBuffer();
boolean first = true;
for (Object key : keys) {
if (key == null || StringUtil.isEmpty(params.get(key))) // 参数为空不参与签名
continue;
if (first) {
first = false;
} else {
temp.append("&");
}
temp.append(key).append("=");
Object value = params.get(key);
String valueStr = "";
if (null != value) {
valueStr = value.toString();
}
if (encode) {
temp.append(URLEncoder.encode(valueStr, "UTF-8"));
} else {
temp.append(valueStr);
}
}
return temp.toString();
}
可以看到,核心的申请条件:
1、商户号已入驻90日且截止今日回推30天商户号保持连续不间的交易。
2、登录微信支付商户平台-产品中心,开通企业付款到零钱。
很多人项目卡在这个环节,那么,我们可以通过突破实现“免90天入驻、30日连续交易流水”的限制,来实现快速的项目上线。