1、增加如下配置sql:
可以直接在數據庫工具執行
INSERT INTO `eb_system_config` (`id`, `is_store`, `menu_name`, `type`, `input_type`, `config_tab_id`, `parameter`, `upload_type`, `required`, `width`, `high`, `value`, `info`, `desc`, `sort`, `status`) VALUES
(null, 0, 'v3_pay_public_key', 'text', 'input', 4, '', 1, '', 100, 0, '\"\"', 'v3支付公鑰', 'v3支付公鑰,新版本使用公鑰請填寫', 0, 1),
(null, 0, 'v3_pay_public_pem', 'upload', 'input', 4, '', 3, '', 0, 0, '\"\"', 'v3支付公鑰證書', 'v3支付公鑰證書,使用新版本支付公鑰上傳此證書', 0, 1);
2、文件:config/wechat.php
增加如下代碼
3、文件:app/services/system/config/SystemConfigServices.php
找方法:shopPayFormBuild,增加如下代碼:
下部分代碼可以復制:
Build::input('v3_pay_public_key', $data['v3_pay_public_key']['info'], $data['v3_pay_public_key']['value'])->info($data['v3_pay_public_key']['desc']),
Build::uploadImage('v3_pay_public_pem', $data['v3_pay_public_pem']['info'], $data['v3_pay_public_pem']['value'])
->url('/file/upload/1?type=1')->format(config('upload.fileExt'))->headers(['Authori-zation' => app()->request->header('Authori-zation')])
->type('file')->icon('md-add')->info($data['v3_pay_public_pem']['desc']),
4、文件:crmeb/services/wechat/config/V3PaymentConfig.php
增加下面三張圖,截圖中部分代碼
下圖代碼,可以在這里復制:
$this->v3_pay_public_key = $this->v3_pay_public_key ?: $this->httpConfig->getConfig('v3_pay.public_key', '');
$this->v3_pay_public_pem = $this->v3_pay_public_key ?: $this->httpConfig->getConfig('v3_pay.public_pem', '');
5、文件:crmeb/services/wechat/v3pay/BaseClient.php
修改如下圖所示:可以復制代碼:
if ($this->app['config']['v3_payment']['v3_pay_public_key'] != '') {
$options['headers']['Wechatpay-Serial'] = $this->app['config']['v3_payment']['v3_pay_public_key'];
} else {
$options['headers']['Wechatpay-Serial'] = $this->getCertficatescAttr('serial_no');
}
繼續在這個文件,找getPublicKey方法:
可以在這里復制
if ($this->app['config']['v3_payment']['v3_pay_public_key'] != '') {
$key_path = $this->app['config']['v3_payment']['v3_pay_public_pem'];
} else {
$key_path = $this->app['config']['v3_payment']['cert_path'];
}