startTrans(); try { $data['app_id'] = self::$app_id; $data['pay_type'] = empty($data['pay_type']) ? '' : json_encode($data['pay_type']); if (!empty($data['cert_pem']) && !empty($data['key_pem'])) { // 写入微信支付证书文件 $this->writeCertPemFiles($data['cert_pem'], $data['key_pem'],$data['branch_id']); } $this->save($data); //如果是付呗接口,检查参数配置 by yj if($data['apitype']) { $app = FbPay::getFbPayApp(self::$app_id, $data['branch_id']); $FbPay = new FbPay($app); $res = $FbPay->wxconfig(); if($res != true) { $this->error = $res; $this->rollback(); return false; } } // 更新缓存 by yj 2022.12.23 Cache::tag('cache')->set('app_pay' . $data['branch_id'], $data); $this->commit(); return true; } catch (\Exception $e) { $this->error = $e->getMessage(); $this->rollback(); return false; } } /** * 写入cert证书文件 */ private function writeCertPemFiles($cert_pem = '', $key_pem = '',$branch_id) { // 证书目录 $filePath = root_path() . 'runtime/cert/app/' . self::$app_id . '/'. $branch_id . '/'; // 目录不存在则自动创建 if (!is_dir($filePath)) { mkdir($filePath, 0755, true); } // 写入cert.pem文件 if (!empty($cert_pem)) { file_put_contents($filePath . 'cert.pem', $cert_pem); } // 写入key.pem文件 if (!empty($key_pem)) { file_put_contents($filePath . 'key.pem', $key_pem); } return true; } }