美文网首页
微信分账

微信分账

作者: 昵称违规 | 来源:发表于2019-08-15 18:01 被阅读0次

    最近,微信分账终于更新了微信开发文档,普通商户和服务商都可以分账,微信现在文档还是比较全了,没那么坑了,认真通读文档,开发起来没什么压力。

    简单说下微信分账的意思,用户发起一笔微信支付,这笔订单可以标记为分账订单,前提是要在商户后台添加微信分账功能,配置分账比例,通知等。分账前,要先添加分账接收方,添加一次,后续没变化,可以不添加,但是微信好像没提供查询分账接收方列表功能,然后就可以一步一步按文档分账。

    这里我想简单说下分账我遇到的问题,

    分账接口需要证书,证书路径是个问题,这里借鉴此方法证书路径问题,然后就是带证书post请求方法,这里贴一个自己网上找的ssl方法

    /**

    * SSL代码

    */

    public static StringpostSSL(String url, String data, String certPath, String certPass) {

    try {

    KeyStore clientStore = KeyStore.getInstance("PKCS12");

            // 读取本机存放的PKCS12证书文件

            FileInputStream inputStream =new FileInputStream(certPath);

            try {

    // 指定PKCS12的密码(商户ID)

                clientStore.load(inputStream, certPass.toCharArray());

            }finally {

    inputStream.close();

            }

    SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(clientStore, certPass.toCharArray()).build();

            // 指定TLS版本

            SSLConnectionSocketFactory sslsf =new SSLConnectionSocketFactory(sslcontext, new String[]{"TLSv1"}, null,

                    SSLConnectionSocketFactory.getDefaultHostnameVerifier());

            // 设置httpclient的SSLSocketFactory

            CloseableHttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();

            try {

    HttpPost httpost =new HttpPost(url); // 设置响应头信息

                httpost.addHeader("Connection", "keep-alive");

                httpost.addHeader("Accept", "*/*");

                httpost.addHeader("Content-Type", "*");

                httpost.addHeader("X-Requested-With", "XMLHttpRequest");

                httpost.addHeader("Cache-Control", "max-age=0");

                httpost.addHeader("User-Agent", "*");

                httpost.setEntity(new StringEntity(data, "UTF-8"));

                CloseableHttpResponse response = httpclient.execute(httpost);

                try {

    HttpEntity entity = response.getEntity();

                    String jsonStr = EntityUtils.toString(response.getEntity(), "UTF-8");

                    EntityUtils.consume(entity);

                    return jsonStr;

                }finally {

    response.close();

                }

    }finally {

    httpclient.close();

            }

    }catch (Exception e) {

    log.error("", e);

            throw new RuntimeException(e);

        }

    }

    可能要到httpclient 包。

    微信开发建议用wxjava大牛开发的工具包比较全,目前好像还没加入分账功能,毕竟微信也没开放多久。推荐lombok和国产工具包hutool

    后续有什么问题再更新。

    相关文章

      网友评论

          本文标题:微信分账

          本文链接:https://www.haomeiwen.com/subject/usctsctx.html