Как получить идентификатор транзакции после успешной подписки

Я работаю над платформой, предлагающей услуги. При создании новой подписки создается новая транзакция для первого биллинга. Как я могу получить доступ к идентификатору транзакции?

У меня есть форма с Drop-in UI от Braintree, и мой бэкэнд в настоящее время выглядит так:

if (!auth()->user()->subscribed('main')) {
     $subscription = auth()->user()->newSubscription('main', 'membership-monthly')->create($request->payment_method_nonce, []);
     dd($subscription);
}

Это успешно создает новую подписку!

Теперь я хочу получить доступ к идентификатору первой платежной транзакции этой подписки. Как получить идентификатор транзакции после успешной подписки Как я могу этого добиться?

как насчет $ subscription-> id ??

Ashiq Hassan 26.09.2018 14:34

Это не тот идентификатор, который мне нужен. Это идентификатор подписки в моей локальной базе данных. Мне нужен другой идентификатор транзакции.

Codearts 26.09.2018 15:20

Вы нашли решение?

Anas Bakro 17.10.2019 15:22

В настоящее время я использую stripe_id, который возвращается create (), и его можно использовать для поиска на панели управления полосами, чего достаточно, поскольку он функционирует как ссылка для записи в системе полос

Anas Bakro 17.10.2019 15:47
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
3
4
558
3

Ответы 3

Если у вас есть связь между подпиской и транзакциями, вам нужен доступ, поэтому:

foreach($subscription->transactions() as $transaction){
   //here you access yo transactions id
   dd($transaction);
}

Я надеюсь, что смогу помочь тебе

К сожалению, метода transaction () нет. Попытка транзакции $ subscription-> также возвращает пустой массив.

Codearts 26.09.2018 15:10

Возможно, вам следует указать второй параметр для создания функции, попробуй это:

if (!auth()->user()->subscribed('main')) {
    $payload = array();
    $subscription = auth()
         ->user()
         ->newSubscription('main', 'membership-monthly')
         ->create($request->payment_method_nonce, $payload);
    dd($subscription);
    dd($payload);

}

Из Laravel Cashier документация схема базы данных выглядит так:

Schema::create('subscriptions', function ($table) {
    $table->increments('id');
    $table->unsignedInteger('user_id');
    $table->string('name');
    $table->string('braintree_id');
    $table->string('braintree_plan');
    $table->integer('quantity');
    $table->timestamp('trial_ends_at')->nullable();
    $table->timestamp('ends_at')->nullable();
    $table->timestamps();
});

Я бы предположил, что получение подписки в вашем случае будет похоже на $subscription->braintree_id

Другие вопросы по теме