对于微信API我早已是无力吐槽,真的是看一次吐一次,这么乱大家造嘛,

关于微信开发和微信API遇到的坑比所有的套路都深,简直是生无可恋,哎

下面给大家提供一个有关于微信企业付款的代码吧,不多说,直接上代码:

private Logger logger = Logger.getLogger(getClass());
// 开发者ID
private String AppID = "";
// 商户号
private String mchId = "";
// 支付key
private static String key = "";

// 统一下提现地址
private String UNIFIED_FEEDBACK_URL = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";

// 校验用户姓名选项
private String check_name = "NO_CHECK";

// 校验用户姓名选项
private String send_name = "";

// 企业付款描述信息
private String desc = "";

@Autowired
private UserService userService;

@RequestMapping("/pay")
@ResponseBody
public boolean pay(HttpServletRequest request,Integer userid) throws Exception {
Userinfo user = UserUtils.getUserById(request, userid);
boolean falg = true;
SortedMap<Object, Object> parameters = new TreeMap<Object, Object>();
StringBuffer param = new StringBuffer();
param.append("mch_app.equals(e.getText())) {
falg = false;
}
}
response.close();
return falg;
}

 

 

//安全证书地址
public static String certPath = "cert/apiclient_cert.p12";
// 商户号
private static String mchId = "";
/**
* 验证证书公共方法
* @description
* @param certPath 证书的路径
* @param mchid 商户id
* @return
* @throws Exception
* @author Jobs
*/
public static CloseableHttpClient ssl() throws Exception {
KeyStore keyStore = KeyStore.getInstance("PKCS12");
System.out.println("keyStore:" + keyStore);
FileInputStream instream = new FileInputStream(new File(certPath));
System.out.println("instream:" + instream);
try {
keyStore.load(instream, mchId.toCharArray());
} finally {
instream.close();
}

// 相信自己的CA和所有自签名的证书
SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, mchId.toCharArray()).build();
// 只允许使用TLSv1协议
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslcontext, new String[] { "TLSv1" }, null, SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
CloseableHttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();
return httpclient;
}

 

/**
*@说明:将请求参数转换为xml格式的string
*/
public static String getRequestXml(SortedMap<Object, Object> parameters) {
StringBuffer sb = new StringBuffer();
sb.append("<xml>");
Set<Entry<Object, Object>> es = parameters.entrySet();
Iterator<Entry<Object, Object>> it = es.iterator();
while (it.hasNext()) {
Map.Entry<Object, Object> entry = (Map.Entry<Object, Object>) it.next();
String k = (String) entry.getKey();
String v = entry.getValue().toString();
if ("attach".equalsIgnoreCase(k) || "body".equalsIgnoreCase(k)|| "sign".equalsIgnoreCase(k)) {
sb.append("<" + k + ">" + "<![CDATA[" + v + "]]></" + k + ">");
} else {
sb.append("<" + k + ">" + v + "</" + k + ">");
}
}
sb.append("</xml>");
return sb.toString();
}

 

导出研究这个企业付款时也是各种坑,还好熬过了这些坑

*注:主要代码段是第一段,后续的那些是在网上都可以找到的工具类

写下这些希望可以帮到那些被坑过套路过的

相关文章: