成功订阅后如何获取交易ID

时间:2018-09-26 12:07:37

标签: laravel braintree laravel-cashier

我正在开发一个提供服务的平台。创建新订阅时,将为第一个账单创建一个新交易。如何访问交易ID?

我有一个带有Braintree的Drop-in UI的表单,我的后端当前看起来像这样:

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

这成功创建了一个新的订阅!

现在,我要访问此订阅的第一笔帐单交易的ID。 enter image description here 我该如何实现?

3 个答案:

答案 0 :(得分:1)

可能您应该提供第二个参数来创建函数, 试试这个:

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

}

答案 1 :(得分:0)

如果您在订阅和交易之间有联系,则需要访问:

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

我希望我能为您提供帮助

答案 2 :(得分:0)

在Laravel Cashier documentation中,数据库模式如下:

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