Получить сведения о клиенте Stripe в Laravel 5.3 с помощью Cashier 7.0

#laravel #laravel-5 #stripe-payments #laravel-5.3 #laravel-cashier

#laravel #laravel-5 #stripe-платежи #laravel-5.3 #laravel-кассир

Вопрос:

В Laravel 5.1 с помощью Cashier ~5.0 я использовал для получения сведений о клиенте Stripe для этого пользователя следующим образом:

$customer = $user->subscription()->getStripeCustomer();

После обновления до Laravel 5.3 с помощью Cashier ~7.0 я изменил приведенную выше строку в controller на эту:

$customer = $user->subscription('main')->getStripeCustomer();

После обновления я теперь получаю сообщение об ошибке:

 BadMethodCallException in Builder.php line 2440: 
Call to undefined method IlluminateDatabaseQueryBuilder::getStripeCustomer()
  

Как я могу получить данные о клиенте Stripe в Laravel 5.3 с Cashier ~7.0 помощью?

Ответ №1:

Вы можете получить клиента Stripe с $user->asStripeCustomer()

Комментарии:

1. Я попробовал ваше предложение @DamirMiladinov, но я получаю аналогичную ошибку: BadMethodCallException in Builder.php line 2440: Call to undefined method IlluminateDatabaseQueryBuilder::asStripeCustomer() . Знаете ли вы, что именно означает ошибка? Когда я искал исходный код cashier в, cashier/src/SubscriptionBuilder.php я вижу getStripeCustomer() метод. Итак, я не уверен, почему отображается ошибка и что именно она говорит.

2. Привет, @DamirMiladinov, ты абсолютно прав. $user->asStripeCustomer() сработало. Я был неправ, когда попробовал это сначала. В спешке, чтобы попробовать ваше предложение, я ошибочно использовал его как $user->subscription('main')->asStripeCustomer() . Вот почему метод не сработал, поскольку связь была неправильной. Перечитав ваш ответ еще раз, я понял, как я был неправ. Изменение его на $user->asStripeCustomer() сработало, и я смог получить информацию о клиенте stripe в виде массива. Большое вам спасибо. Вы такой спаситель.

3. СПАСИБО, сэр! не удалось найти его больше нигде