美文网首页
网站集成微信支付-申请退款

网站集成微信支付-申请退款

作者: 麦兜叮叮当 | 来源:发表于2017-07-13 14:30 被阅读0次

本以为申请退款应该就没那么多坑了,没想到...

申请退款这个环节需要商户证书,那么好吧,我们按官方文档给的地址下载一下:微信商户平台(pay.weixin.qq.com)-->账户中心-->账户设置-->API安全-->证书下载

解压之后有四个文件:

F4AA095C-4C45-4720-B5E3-60664348E70B.png

经过一番百度,原来java web开发只需要使用apiclient_cert.p12这个文件。

我们需要把这个文件放到自己的项目中,我放到了这里:

BD85CFBE-AD83-4B42-BC8E-3AE760AAD107.png

ok,废话说完了,接下来上代码:

public static String payHttps(String data,String id) throws Exception {
        //指定读取证书格式为PKCS12
        KeyStore keyStore = KeyStore.getInstance("PKCS12");
        //读取本机存放的PKCS12证书文件
        FileInputStream instream = new FileInputStream(new File("doc/apiclient_cert.p12"));
        try {
            //指定PKCS12的密码, 商户ID
            keyStore.load(instream, id.toCharArray());
        } finally {
            instream.close();
        }
        SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, id.toCharArray()).build();
        //指定TLS版本
        SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
                sslcontext,new String[] { "TLSv1" },null,
                SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
        //设置httpclient的SSLSocketFactory
        CloseableHttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).build();
        try {
            /**
             * wx 头信息设置
             */
            //因为牵扯到证书, 所以不使用HttpURLConnection, 改用HttpClient
            HttpPost httpost = new HttpPost("https://api.mch.weixin.qq.com/secapi/pay/refund"); // 设置响应头信息
            httpost.addHeader("Connection", "keep-alive");
            httpost.addHeader("Accept", "*/*");
            httpost.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            httpost.addHeader("Host", "api.mch.weixin.qq.com");
            httpost.addHeader("X-Requested-With", "XMLHttpRequest");
            httpost.addHeader("Cache-Control", "max-age=0");
            httpost.addHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) ");
            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);
                System.out.println("jsonStr" + jsonStr);
                return jsonStr;
            } finally {
                response.close();
            }
        } finally {
            httpclient.close();
        }
    }

笔者能力有限,不足之处欢迎指出。

相关文章

  • 网站集成微信支付-申请退款

    本以为申请退款应该就没那么多坑了,没想到... 申请退款这个环节需要商户证书,那么好吧,我们按官方文档给的地址下载...

  • 微信App支付接入&支付流程

    微信App支付接入&支付流程 最近对微信App支付(App端集成微信支付SDK)申请步骤,以及终端在进行微信支付时...

  • 微信APP支付和退款(JAVA)

    微信APP支付和退款 微信支付流程说明 Java demo实例 退款 转账 1、微信支付 1 微信支付流程说明 本...

  • 浅析微信支付:申请退款、退款回调接口、查询退款

    本文是【浅析微信支付】系列文章的第八篇,主要讲解商户如何处理微信申请退款、退款回调、查询退款接口,其中有一些坑的地...

  • 微信支付申请不通过的解决方法

    在移动支付巨大的市场下,微信支付当前非常流行,在网站上集成一个微信支付方式,通过接入微信支付功能,用户可以在微信公...

  • 微信支付与退款

    微信支付和微信退款大致相同,只不过微信支付有一个回调的过程,而退款只需要看返回的状态就可以了。 一、微信小程序支付...

  • 微信支付之微信退款

    官方文档 无论刷卡支付、微信公众号支付、扫码支付、H5支付、APP支付等都有申请退款API并且接口一样,本篇文章就...

  • OkHttp3使用证书发起请求

    OkHttp3使用证书发起请求 最近在对接微信支付功能,微信所有接口都采用okHttp3请求,但是申请退款接口需要...

  • 微信支付--PHP 封装

    微信支付开发文档 类的使用方法 笔者阅读微信支付SDK里面的example之后,把下单,查询订单,退款,查询退款等...

  • 小程序 微信退款功能实现讲解 (PHP方式)

    ☹. 背景 微信开发中,既然涉及到了微信支付,对于合理的购物网站,必定会有用户退款请求 当然,一种方式是登录 微信...

网友评论

      本文标题:网站集成微信支付-申请退款

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