Отсутствует класс кредитной карты при использовании Omnipay Paypal для Laravel 5

Вот репо, включенное в мой композитор:

omnipay и paypal

В моей конфигурации/laravel-omnipay.php:

'gateways' => [
    'paypal' => [
        'driver'  => 'PayPal_Rest',
        'options' => [
            'solutionType'   => '',
            'landingPage'    => '',
            'headerImageUrl' => ''
        ]
    ]
]

Вот в моем контроллере:

// omnipay start
        $gateway = Omnipay::create('PayPal_Rest');

        // Initialise the gateway
        $gateway->initialize(array(
            'clientId' => 'xxxxxx',
            'secret'   => 'xxxxxx',
           'testMode' => true, // Or false when you are ready for live transactions
        ));

        // Create a credit card object
        // DO NOT USE THESE CARD VALUES -- substitute your own
        $card = new CreditCard(array(
                   'firstName'              => $request->firstname,
                   'lastName'               => $request->lastname,
                   'number'                 => $request->cardnumber,
                   'expiryMonth'            => $month_year[0],
                   'expiryYear'             => $month_year[1],
                   'cvv'                    => $request->ccv,
                   'billingAddress1'        => $request->address
                   /*
                   'billingCountry'         => 'AU',
                   'billingCity'            => 'Scrubby Creek',
                   'billingPostcode'        => '4999',
                   'billingState'           => 'QLD',*/
        ));

        // Do an authorisation transaction on the gateway
        $transaction = $gateway->authorize(array(
           'amount'        => '100',
           'currency'      => 'USD',
           'description'   => $eventName->event_title,
           'card'          => $card,
        ));
        $response = $transaction->send();
        if ($response->isSuccessful()) {
           echo "Authorize transaction was successful!\n";
           // Find the authorization ID
           $auth_id = $response->getTransactionReference();
        }

У меня есть эта ошибка:

Class 'App\Http\Controllers\CreditCard' not found

Примечание. Если я использую RestGateway для замены PayPal_Rest, вместо этого я получаю эту ошибку:

Class '\Omnipay\RestGateway\Gateway' not found

Долго искал ответ, но не нашел решения, которое работает для меня. Итак, не совсем уверен, как действовать дальше.


person shaNnex    schedule 02.12.2015    source источник


Ответы (2)


Вы должны иметь это в верхней части вашего файла класса:

use Omnipay\Common\CreditCard;
person delatbabel    schedule 03.12.2015

$creditCard = new \Omnipay\Common\CreditCard([...]);

Обратная косая черта

Дальнейшее чтение: https://stackoverflow.com/questions/4790020/what-does-a-backslash-do-in-php-5-3#:%7E:text=%5C%20(обратнаякосаячерта)%20is%20the%20namespace,name%20in%20the%20current%20namespace.

Проблема в том, что он будет извлекать класс из глобального пространства имен, а не из текущего пространства имен.

person Smith    schedule 03.07.2020