时间:2021-05-19
本文为大家分享了java微信公众号企业付款的开发代码,供大家参考,具体内容如下
详情参照微信开发者文档 企业付款文档
java代码 定义所传递的参数
@RequestMapping(value = "zhifu", method = RequestMethod.GET) public @ResponseBody String getWeixinOpenid(String code, HttpServletRequest request) { // 订单号 自定义 生成32位uuid String partner_trade_no = UUIDGenerator.getUUID(); // 随机数 String nonce_str = UUIDGenerator.getUUID(); // 转账金额(分为单位)1-200 int jine = 100; // 企业付款信息 String desc = "转账"; // ip地址 String spbill_create_ip = "xx.xx.xx"; // re_user_name String re_user_name = "xx"; String check_name = CheckName.NO_CHECK.toString(); String zfpath = "D:/apiclient_cert.p12"; try { // 获取openid String openid = WeChatUtil.getByOpenid(appid, secret, code); // 付款 boolean flag = WeChatUtil.enterprisePayment(openid, appid, mchid, nonce_str, partner_trade_no, re_user_name, jine, desc, spbill_create_ip, check_name, key, zfpath); // 成功 if (flag) { return "SUCCESS"; } } catch (Exception e) { System.err.println(e.getStackTrace()); } return "FAIL"; }获取关注本公众号用户唯一标示 获取openid
java代码 获取openid 静态方法
/** * 获取openid * * @description * @param appid * @param secret * @param code * @return * @author shaomiao */ public static String getByOpenid(String appid, String secret, String code) { String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + appid + "&secret=" + secret + "&code=" + code + "&grant_type=authorization_code"; String jsonstring = WeChatUtil.getJsonString(url); JSONObject json1 = JSONObject.parseObject(jsonstring); String openid = json1.get("openid").toString(); return openid; }企业付款的调用公共方法
java代码
post提交 xml参数
解析回调的xml
微信签名验证证书
验证证书公共方法
/** * 验证证书公共方法 * * @description * @param zfpath 证书的路径 * @param mchid 商户id * @return * @throws Exception * @author Jobs */ // shanghuid // 验证证书 @SuppressWarnings("deprecation") public static CloseableHttpClient certificateValidation(String zfpath, String mchid) throws Exception { // 指定读取证书格式为PKCS12 KeyStore keyStore = KeyStore.getInstance("PKCS12"); // 证书地址 FileInputStream instream = new FileInputStream(new File(zfpath)); try { keyStore.load(instream, mchid.toCharArray()); } finally { instream.close(); } // Trust own CA and all self-signed certs SSLContext sslcontext = SSLContexts.custom() .loadKeyMaterial(keyStore, mchid.toCharArray()).build(); // Allow TLSv1 protocol only SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( sslcontext, new String[] { "TLSv1" }, null, SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER); CloseableHttpClient httpclient = HttpClients.custom() .setSSLSocketFactory(sslsf).build(); return httpclient; }微信公共方法 字符串转xml
/** * 微信支付拼接xml * * @param params * @return */ public static String toXml(Map<String, String> params) { String xml = "<xml>"; for (String key : params.keySet()) { if ("body".equals(key) || "attach".equals(key) || "sign".equals(key)) { xml += "<" + key + "><![CDATA[" + params.get(key) + "]]></" + key + ">"; } else { xml += "<" + key + ">" + params.get(key) + "</" + key + ">"; } } xml += "</xml>"; return xml; }微信公共方法 字符串MD5
加密
用来加密签名
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
微信公众平台开发之前,要先了解这些基本的信息,微信公众平台的分类:分为个人微信公众平台于企业微信公众平台两种;公众号运营类型分为:订阅号,服务号和企业号,微信还
企业微信公众号要钱吗?企业微信公众号是怎么收费的呢,企业微信公众号主要用来干什么?很多企业刚接触微信公众号的还不是很了解其中,那企业微信公众号要钱吗?怎么收
我们都知道微信账号分微两种,一种微信个人号,一种微信公众号,个人账号可以收款付款,那么微信公众号可以收款吗?公众号开通微信怎么做呢?微信公众号收款怎么弄呢?
看谁转发了微信公众号暂时没有此功能,微信公众号是开发者或商家在微信公众平台上申请的应用号,是一种主流的线上线下微信互动营销方式。 微信公众号是开发者或商家在微
微信公众平台开发为企业解决那些问题呢?我们经常看到微信公众号定制开发、微信公众平台定制开发,都不知道这些能给一家企业带来什么,让很多人产生疑惑,网站建设那么下面