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'];
}