微信企业付款到银行卡,这个是微信支付商户的一个功能,开通条件或者什么介绍可以到官方文档查看,开通步骤还有下载API证书下载这些,可以自行处理,也比较简单,这里从获取RSA加密公钥开始:
一、获取RSA加密公钥:
调用获取RSA公钥API获取RSA公钥,落地成本地文件,假设为public.pem,确定public.pem文件的存放路径,同时修改代码中文件的输入路径,加载RSA公钥,用标准的RSA加密库对敏感信息进行加密,选择RSA_PKCS1_OAEP_PADDING填充模式, 得到进行rsa加密并转base64之后的密文,将密文传给微信侧相应字段,如付款接口(enc_bank_no/enc_true_name)
下面代码默认输出PKCS#1格式的公钥,我们需要这个,所以先写一个接口去请求一下,然后将证书文件保存一下。请求下面这个接口方法会返回证书信息。
public function GetRsa() { $data = [ 'mch_id' =>'your mch_id', 'nonce_str' => '随机字符串(32)', 'sign_type' => 'MD5', ]; $data['sign'] = makeSign($data, $this->api_key); // 生成签名,不具体的写了,自己根据实际情况处理 $xml = ArrayToXml($data); $url = 'https://fraud.mch.weixin.qq.com/risk/getpublickey'; $arr = CurlPostSsl($url, $xml, $this->certificate_path); var_dump(self::XmlToArray(strstr($arr, '<xml>'))); exit; }
二、RSA密钥PKCS#1转PKCS#8:
微信支付官方给出的描述是
PKCS#1 转 PKCS#8: openssl rsa -RSAPublicKey_in -in -pubout PKCS#8 转 PKCS#1: openssl rsa -pubin -in -RSAPublicKey_out
需要在服务器上面执行,如果出现错误,在检查看一下,一般出错都是由于一些细节的问题:
openssl rsa -RSAPublicKey_in -in pkcs1.pem -pubout > pkcs8.pem
执行完成之后,如果出现下方的情况,说明成功了,复制之后放到.pem文件内就行:
至于使用,请参考官方说明,如果你是使用的easywechat之类的库的话,使用就非常简单了,只需配置好位置即可,当然文件比较敏感,可以放在敏感的目录,安全嘛!
当然如果你是适应的easywechat提供的工具生成的话,生成的pem是不能直接使用的,里面只有一行,首先要转换成每行64个字符的pem文件,之后在使用上方的方法转换成PKCS#8的格式,然后才能使用,不知道为什么easywechat这里没有直接转换,第一次的时候确实比较懵,希望对你有所帮助吧
详细这个生成之后,就简单了
还木有评论哦,快来抢沙发吧~