Python微信支付调用退款时===[SSL] PEM lib (_ssl.c:3401)

使用PythonWechat微信安装包时

pip3 install weixin-python

在调用退款接口时,request.Session().post()传递SSL证书时,cert=(self.key, self.cert)两个文件的顺序错误会导致此问题,[SSL] PEM lib (_ssl.c:3401)

    def _fetch(self, url, data, use_cert=False, appid=True):
        if appid:
            data.setdefault("appid", self.app_id)
        data.setdefault("mch_id", self.mch_id)
        data.setdefault("nonce_str", self.nonce_str)
        data.setdefault("sign", self.sign(data))
        if use_cert:
            resp = self.sess.post(url, data=self.to_xml(data), cert=(self.key, self.cert,), verify=True)
        else:
            resp = self.sess.post(url, data=self.to_xml(data), verify=True)
        content = resp.content.decode("utf-8")
        if "return_code" in content:
            data = Map(self.to_dict(content))
            if data.return_code == FAIL:
                raise WeixinPayError(data.return_msg)
            if "result_code" in content and data.result_code == FAIL:
                raise WeixinPayError(data.err_code_des)
            return data
        return content

 

你可能感兴趣的:(django,python,微信支付,python)