【问题标题】:Cannot use Conekta\Object as Object because 'Object' is a special class name不能使用 Conekta\Object 作为对象,因为“对象”是一个特殊的类名
【发布时间】:2020-02-07 20:56:20
【问题描述】:

我正在尝试使用 Conekta 支付 oxxo 引用,这是使用 PostMan,因为它是一种 Web 服务,当我尝试使用 ws 时,我得到了下一个错误:

FatalErrorException in Resource.php line 5:  
Cannot use Conekta\Object as Object because 'Object' is a special class name  
1. in Resource.php line 5

我读到这个问题是由版本引起的,但我有最新版本的 Conekta “4.0.4”,这是 PHP 7+,我的 PHP 版本是 7.3。

那么,有人可以帮帮我吗?
我有 2 天的时间遇到​​这个问题,在互联网上我没有找到任何东西。

这是我的代码

private function payWithOxxoPay($payment_token) {

      $amount = (int) $this->package->price * 100;

      // Processing payment
      $this->payment_type = 'Conekta_Oxxo';
      $this->payment_status = 'Procesando';
      $this->payment_reference = "promo_" . $this->id;
      $this->save();

        Conekta::setApiKey(config('app.conekta_private_key'));
        $chargeData = [
            "amount"=> $amount,
            "currency"=> "MXN",
            "description"=> "Promoción " . $this->package->title,
            "reference_id"=> $this->payment_reference,
            "card"=> $this->payment_token,
            'details' => [
                'name'=> $this->user->name . ' ' . $this->user->last_name,
                'phone'=> $this->user->phone ?: '38109948',
                'email'=> $this->user->email ?: 'default@turnmyapp.com',
                'line_items'=> [
                    [
                        'name'=> "Promoción " . $this->package->title,
                        'description'=> "Promoción " . $this->package->title,
                        'unit_price'=> $amount,
                        'quantity'=> 1,
                        'sku'=> 'promo_pack_' . $this->package->id,
                        'category'=> 'Promotion'
                    ]
                ]
            ]
        ];
       $charge = \Conekta\Charge::create($chargeData);
}  

【问题讨论】:

  • 错误提到Resource.php line 5。添加该文件的相关代码。
  • 是 Conekta API 的一行代码。这是use \Conekta\Object;
  • 您粘贴的代码是一个在任何地方都没有使用Object 类的方法。它只是引用Konecta 一次。您能否添加相关的完整类以查看生成错误的原因?顺便试试这个:use \Conekta\Object as ConektaObject; 并将类用作$c = new ConektaObject();
  • 但我从不打电话给\Conekta\Object;,只在我的课堂上use Conekta\Conekta;
  • Resource.php 类呢?

标签: laravel postman


【解决方案1】:

自 PHP 7.2 起,Object 不再是类名。您正在使用的库 (Conekta) 似乎还没有准备好。

将类名替换为其他名称将有助于解决此问题。

请参阅 Cannot use yii\base\Object as Object because 'Object' is a special class name yii2 advance 以获取另一个库,该库具有导致 7.2 不兼容的相同问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    相关资源
    最近更新 更多