全部
常见问题
产品动态
精选推荐
功能建议

分析中 已回复 待规划 {{opt.name}}
分析中 已回复 待规划
PHP多商户3.4版本平台首付通优化

管理 管理 编辑 删除

一、问题

当平台首付通使用的是平台证书模式,提示公钥不存在 的错误,如图

627b7202603131139486890.png

二、修复

1. 修改代码

public function get()
{    
$is = $this->isService ? 'service_payment':'payment';    //如果是自动分账 或者 普通支付但是用的是v3支付 获取公钥    
if ($this->app['config']['type'] == 'wechat') {        
    $public_key = $this->app['config'][$is]['pay_weixin_public_key'];    
} else {        
    $public_key = $this->app['config'][$is]['pay_routine_public_key'];    
}    
if ($public_key && ($this->isService || $this->app['config']['is_v3'])) {        
    $certficates = [            
        'serial_no' => $this->app['config'][$is]['pay_routine_public_key'],           
         'certificates' => $this->app['config'][$is]['pay_routine_public_id']        
     ];        
 //如果获取公钥成功则返回        
    if ($certficates['serial_no'] && $certficates['certificates']) {            
        return  $certficates;       
    }    
}    
// v2支付,或者是未获取到公钥,则平台证书获取操作    
$driver = Cache::store('file');    
$cacheKey = '_wx_v3' . $this->app['config'][$is]['serial_no'];    
if ($driver->has($cacheKey)) {        return $driver->get($cacheKey);    
}    
$certficates = $this->getCertficates();    
$driver->set($cacheKey, $certficates, 3600 * 24 * 30);    
return $certficates;
}

62d42202603131143544200.png

2. 修改代码


$is = $this->isService ? 'service_payment':'payment';
if ($this->app['config']['type'] == 'wechat') {    
    $public_key = $this->app['config'][$is]['pay_weixin_public_key'];
} else {    
    $public_key = $this->app['config'][$is]['pay_routine_public_key'];
}
if ($public_key && ($this->isService || $this->app['config']['is_v3'])) {    
    $public_key = rtrim(public_path(),'/').$public_key;    
    //如果获取公钥成功则返回    
    if ($public_key) {        
        if (!is_file($public_key)) throw new InvalidConfigException('公钥文件不存在');        
        $public_content = file_get_contents($public_key);        
        if (openssl_public_encrypt($string, $encrypted, $public_content,OPENSSL_PKCS1_OAEP_PADDING)) {  
           //base64编码          
            $sign = base64_encode($encrypted);           
             return  $sign;       
         } else {           
            throw new InvalidConfigException('encrypt failed');       
         }   
    }
}

42266202603131147418351.png

三、 重启swoole

{{voteData.voteSum}} 人已参与
支持
反对
请登录后查看

多商户后端技术 最后编辑于2026-03-13 11:48:00

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}} 【已收集】
{{item.floor}}# 沙发 板凳 地板 {{item.floor}}# 【已收集】
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打赏
已打赏¥{{item.reward_price}}
{{item.like_count}}
分享
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打赏
已打赏¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
收起 展开更多
查看更多
打赏
已打赏¥{{reward_price}}
92
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定
打赏金额
当前余额:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
请输入 0.1-{{reward_max_price}} 范围内的数值
打赏成功
¥{{price}}
完成 确认打赏

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服
CRMEB咨询热线 400-8888-794

扫码领取产品资料

功能清单
思维导图
安装教程
CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服