收藏
回答

微信支付+使用wechatpay-php开发+构建一个客户端实例 Rsa::from 报错?

提示错误:Cannot load privateKey from(string), please take care about the \$thing input.

/**
 * 构建一个客户端实例
 * wechatpay-php
 */
public static function instanceWeChatPay()
{
    // 商户号
    $merchantId = WeChat::$merchantId;
    // 从本地文件中加载商户API私钥,商户API私钥会用来生成请求的签名
    $merchantPrivateKeyInstance = Rsa::from(WeChat::$merchantPrivateKeyFilePath, Rsa::KEY_TYPE_PRIVATE);
dd(  $merchantPrivateKeyInstance  );
    // 商户API证书序列号
    $merchantCertificateSerial = WeChat::$merchantCertificateSerial;

    // 从本地文件中加载微信支付平台证书,用来验证微信支付应答的签名
    $platformPublicKeyInstance = Rsa::from(WeChat::$platformCertificateFilePath, Rsa::KEY_TYPE_PUBLIC);
    // 获取微信支付平台证书序列号
    $platformCertificateSerial = PemUtil::parseCertificateSerialNo(WeChat::$platformCertificateFilePath);

    // 构造一个 APIv3 客户端实例
    WeChat::$instance = Builder::factory([
        'mchid'      => $merchantId,
        'serial'     => $merchantCertificateSerial,
        'privateKey' => $merchantPrivateKeyInstance,
        'certs'      => [
            $platformCertificateSerial => $platformPublicKeyInstance,
        ],
    ]);
}


回答关注问题邀请回答
收藏

4 个回答

  • 北望沣渭
    北望沣渭
    发表于移动端
    2021-12-27
    wechat::$merchantPrivateKeyFilePath 这个字符串路径,需要带 file:// 协议
    2021-12-27
    有用 2
    回复 4
    • Kingson
      Kingson
      2022-02-23
      加了file://协议还报错,请问怎么解决的?
      2022-02-23
      回复
    • 情歌手阿花
      情歌手阿花
      2022-02-26回复Kingson
      解决了吗??
      2022-02-26
      回复
    • Kingson
      Kingson
      2022-02-28回复情歌手阿花
      解决了,下载好证书,证书路径用file://就可以了,有问题可以Q找我1604654270
      2022-02-28
      回复
    • 寰宇一鸥
      寰宇一鸥
      2023-11-13
      加上file 也是毛用没用 技术排队1h 啥都不会
      2023-11-13
      回复
  • 张飞龙
    张飞龙
    2022-09-29

    我补充一个可能性:就是你的pem文件要放到你的项目目录里面,不要放到非项目目录里面,不然也会报这个问题,搞了一天才找到原因

    2022-09-29
    有用
    回复
  • Kingson
    Kingson
    2022-02-23

    我也报这个错,请问怎么解决的

    2022-02-23
    有用
    回复
  • Think Alone
    Think Alone
    2022-01-20

    没搞清楚逻辑,这段代码不是要申请做的就是:微信支付平台证书下载 么。但是代码里却要求填入 微信支付平台证书的路径地址,还没获取到 怎么填呢?

    2022-01-20
    有用
    回复
登录 后发表内容