- 记录下用微信云托管做微信支付到零钱包 需要数字证书存到数据库里如何操作的过程
公司项目需要开发一个微信支付到零钱包的功能。 因为使用的是SaaS系统,结合微信云托管,因此每个商户的数字证书最好是存到数据库,直接通过数据库来读取。如果存到云存储,每次还需要通过云存储下载,然后再生成。 而curl 只能使用文件路径,无法通过字符串传值。因此必须在服务器生成一个临时的文件,然后传递这个路径地址到curl,在网上找了几个同行提供的方法 最后调试成功。 因此在这里记录下分享给大家。 首先微信支付到零钱包的功能代码就不贴了,基本上网上一搜很多。主要就发下在微信支付到零钱包的时候,用数字证书,如果不是把数字 证书放在自己的服务器目录里,如何来解决。 主要用的是这个方法 function getTmpPathByContent($content){ $myfileUri= tempnam('','cert_'); //临时文件路径 $needle= fopen($myfileUri,'r+'); //打开文件 fwrite($needle,$content); //写入内容 return$myfileUri; // 返回路径 } 主要方法就是上面这个 然后在curl的时候就可以这样了 $sslCertUri = getTmpPathByContent(’数据库里存的证书内容‘); $sslKeyUri= getTmpPathByContent('数据库里存的整数内容'); curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');//证书类型 curl_setopt($ch, CURLOPT_SSLCERT,$sslCertUri );//证书位置 curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');//CURLOPT_SSLKEY中规定的私钥的加密类型 curl_setopt($ch, CURLOPT_SSLKEY, $sslKeyUri);//证书位置 上面是核心的关键代码,基本上用这个就可以解决问题了。 然后因为用的是微信云托管的代码,在本地调试成功了,上到服务器上又遇到这个问题: Call to undefined function simplexml_load_string() 按照网上提示的 安装 php7-xml php7-xmlrpc 都没效果 最后再安装了这个才生效 php7-simplexml
2022-03-19 - 公众号H5登录流程和云调用的使用
[视频] 主要围绕公众号H5展开,并带入实践讲解云调用的使用过程和一些细节。
2022-05-05