Ai
1 Star 0 Fork 1

xuegan/PHP电商收付通 V3版本SDK

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
Cert.php 1.96 KB
一键复制 编辑 原始数据 按行查看 历史
肖永喜 提交于 2020-07-04 20:01 +08:00 . PHP电商收付通 V3版本SDK
<?php
include_once('WxPayv3Exception.php');
include_once('Signs.php');
class Cert{
/**
* [certificates 保存获取的平台证书,且返回证书的序列号serial_no] 缓存一天时间
* @return string serial_no证书的序列号
*/
public static function certificates()
{
if (file_exists(getcwd() . '/vendor/wechat3/cert/serial_no.txt')) {
if ($serial_nos = file_get_contents(getcwd() . '/vendor/wechat3/cert/serial_no.txt')) {
if ($serial_nos) {
$serial_nos = json_decode($serial_nos,true);
if (time() < $serial_nos['time']) { //如果 1天缓存未过期,直接使用。
return $serial_nos['serial_no'];
}
}
}
}
$url = 'https://api.mch.weixin.qq.com/v3/certificates';
$r = Signs::_Getresponse($url);
$r = json_decode($r, true);
if (isset($r['code'])) {
return $r;
}
$r = $r['data'];
if (is_array($r)) {
$associatedData = $r[0]['encrypt_certificate']['associated_data'];
$nonceStr = $r[0]['encrypt_certificate']['nonce'];
$ciphertext = $r[0]['encrypt_certificate']['ciphertext'];
try {
$data1 = Signs::decryptToString($associatedData, $nonceStr, $ciphertext);
$serial_no = $r[0]['serial_no'];
file_put_contents(getcwd() . '/vendor/wechat3/cert/'.'apiclient_'.date('Ymd').'_cert'.'.pem', $data1);
unset($serial_nos);
$serial_nos = [
'time' => time() + 24 * 3600,
'serial_no' => $serial_no
];
file_put_contents(getcwd() . '/vendor/wechat3/cert/serial_no.txt', json_encode($serial_nos));
} catch (WxPayv3Exception $th) {
throw $th;
}
}
return $serial_no;
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
PHP
1
https://gitee.com/null_397_3348/wechat3.git
git@gitee.com:null_397_3348/wechat3.git
null_397_3348
wechat3
PHP电商收付通 V3版本SDK
master

搜索帮助