微信支付退款接口证书使用

首先看下官方的接口文档:

微信支付退款接口证书使用_第1张图片

 

需要证书:资金发生变化需要证书。支付接口不需要。点击证书使用。

按照不步骤:下载证书。

(2)使用API证书

  • ◆ apiclient_cert.p12是商户证书文件,除PHP外的开发均使用此证书文件。
  • ◆ 商户如果使用.NET环境开发,请确认Framework版本大于2.0,必须在操作系统上双击安装证书apiclient_cert.p12后才能被正常调用。
  • ◆ API证书调用或安装需要使用到密码,该密码的值为微信商户号(mch_id)

(3)API证书安全

1.证书文件不能放在web服务器虚拟目录,应放在有访问权限控制的目录中,防止被他人下载;
2.建议将证书文件名改为复杂且不容易猜测的文件名;
3.商户服务器要做好病毒和木马防护工作,不被非法侵入者窃取证书文件。

4、商户回调API安全

在普通的网络环境下,HTTP请求存在DNS劫持、运营商插入广告、数据被窃取,正常数据被修改等安全风险。商户回调接口使用HTTPS协议可以保证数据传输的安全性。所以微信支付建议商户提供给微信支付的各种回调采用HTTPS协议。请参考:HTTPS搭建指南。

以上文档只是说了,windows环境怎么用,但是linux没有说。

linux下只要将文档放到指定目录可以了,不需要安装证书。

public class WXConfigUtil implements WXPayConfig {
    
    private static final Logger logger = LoggerFactory.getLogger(WXConfigUtil.class);
    
    @Autowired
    private SystemConfig systemConfig;
    
    private byte[] certData;

    private String payType;

    @Override
    public String getAppID() {
        if("APP".equals(getPayType())){
            return systemConfig.getAppId();
        }else{
            return systemConfig.getGzhAppId();
        }
    }

    //parnerid,商户号
    @Override
    public String getMchID() {
       return systemConfig.getMchId();
    }

    @Override
    public String getKey() {
        boolean useSandbox = systemConfig.isUseSandbox();
        if(useSandbox){
            return getSandboxSignKey();
        }
        return systemConfig.getAppKey();
    }

    @Override
    public InputStream getCertStream() {

        ByteArrayInputStream certBis = new ByteArrayInputStream(this.certData);
        return certBis;
    }

       private WXConfigUtil(SystemConfig systemConfig) throws Exception{
        File file = new File(systemConfig.getCerPath());
        InputStream certStream = new FileInputStream(file);
        this.certData = new byte[(int) file.length()];
        certStream.read(this.certData);
        certStream.close();
    }

 加载有参构造的时候把证书加载一下即可。

你可能感兴趣的:(微信支付退款接口证书使用)