2017-02-03 2 views
2

Я следовал за Laravel docs, чтобы реализовать Кассир, но я не могу заставить его работать.Laravel 5.3, Cashier - Braintree - Single Charges

Короче:

  • сделанных и мигрировали миграции
  • добавил оплачиваемый мою User.php модели
  • добавлены ключей к моим .env, называют их в моем config/services.php и добавил SDK звонков на мой AppServiceProvider.php

При необходимости я могу вставить код, но это то же самое (я проверил, но вы никогда не знаете), как в документах.

Теперь, если я пытаюсь запустить

$user = User::find(2); 
$response = $user->charge(15); 
dd($response); 

в мой контроллер я получаю ошибку:

InvalidArgumentException in CustomerGateway.php line 567: 
    expected customer id to be set 

--- 

in CustomerGateway.php line 567 
at CustomerGateway->_validateId(null) in CustomerGateway.php line 198 
at CustomerGateway->find(null) in Customer.php line 106 
at Customer::find(null) in Billable.php line 440 
at User->asBraintreeCustomer() in Billable.php line 29 
at User->charge('15') in MyController.php line 787 

мне кажется, что ошибка здесь:

at Customer::find(null) in Billable.php line 440 

который дает null для CustomerGateway. Так вот код, который вызывается в строке 29 из Billable.php

$customer = $this->asBraintreeCustomer(); 
public function asBraintreeCustomer() 
{ 
    return BraintreeCustomer::find($this->braintree_id); 
} 

Спасибо!

UPDATE

dd($this) Я сделал в asBraintreeCustomer() метод и получил пользователь. Но атрибут braintree_id - null. Как их заполнить? Должен ли я сделать это вручную?

ответ

1

Это была ошибка в отличительной черте. Были зафиксированы 15 июля '17, вы можете прочитать об ошибке и исправления: https://github.com/laravel/cashier-braintree/commit/f0c133860d175a30676eedbab8d2345a59432910

Вы находитесь в пути: проблема была с атрибутом braintree_id будучи null при вызове $this->paymentMethod().

Просто запустите проект composer update.

+0

Благодарим вас за ответ. Я перешел от этого, но мне нужно будет вернуться к моему коду, чтобы увидеть, как я исправил это, как это было какое-то время назад. – dbr

Смежные вопросы