日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

隨著電子商務的不斷發展,訂閱付款模式越來越受歡迎。Laravel Cashier是一個基于Laravel框架的付款工具,它使得管理訂閱和收取付款變得非常簡單。 本文將介紹如何在Laravel應用程序中使用Laravel Cashier以及Authorize.net來處理訂閱付款。

    安裝Laravel Cashier

在開始之前,需要確保你已經安裝了Laravel框架和Composer包管理器。在終端輸入以下命令來安裝Laravel Cashier:

composer require laravel/cashier

登錄后復制

一旦它安裝成功,你需要為Cashier生成遷移表。可以在終端運行以下命令:

php artisan migrate

登錄后復制登錄后復制

這將為付款相關的Cashier表生成所需的數據庫遷移文件。

    配置Authorize.net API

在使用Authorize.net處理付款之前,需要安裝該服務并獲取API憑據(API Login ID和Transaction Key)。

可以通過以下步驟執行這些操作:

前往https://www.authorize.net/注冊一個賬號登錄后,在左側菜單中選擇“Account”,再選擇“Settings”在“Security Settings”中,選擇“API Credentials & Keys”點擊“New Transaction Key”,輸入需要的信息,再點擊“Submit”在彈出窗口中會顯示API Login ID和Transaction Key。請務必復制并妥善保管。

    配置Laravel Cashier

在開始之前,需要配置cashier.php文件中的參數。可以通過以下命令在config文件夾中創建該文件:

php artisan vendor:publish --tag="cashier-config"

登錄后復制

接下來,需要在.env文件中設置Authorize.net API相關參數:

CASHIER_ENV=production
CASHIER_CURRENCY=usd
AUTHORIZE_API_LOGIN_ID=YOUR_API_LOGIN_ID
AUTHORIZE_TRANSACTION_KEY=YOUR_TRANSACTION_KEY

登錄后復制

    創建訂閱計劃

在使用Laravel Cashier和Authorize.net處理訂閱付款之前,需要創建訂閱計劃。可以通過以下命令來創建訂閱計劃:

php artisan make:model Plan -m

登錄后復制

該命令將在app文件夾中創建一個Plan模型,并為其生成遷移表。現在可以打開遷移文件進行編輯,并添加必要的字段。以下是一個可以參考的示例:

Schema::create('plans', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->string('name');
    $table->string('stripe_id');
    $table->string('authorizenet_id');
    $table->integer('price');
    $table->string('interval');
    $table->integer('interval_count');
    $table->integer('trial_period_days')->nullable();
    $table->timestamps();
});

登錄后復制

執行完遷移文件后,需要在數據庫中創建該表。在終端中運行以下命令:

php artisan migrate

登錄后復制登錄后復制

接下來,需要在Plan模型中定義必要的屬性和方法。以下是一個示例:

use LaravelCashierSubscription;

class Plan extends Model
{
    public function subscriptions()
    {
        return $this->hasMany(Subscription::class);
    }

    public function getPrice()
    {
        return $this->price / 100;
    }

    public function getFormattedPrice()
    {
        return number_format($this->getPrice(), 2);
    }

    public function authorizeNetPlan()
    {
        return AuthorizeNet_Subscription::create([
            'name'                   => $this->name,
            'intervalLength'         => $this->interval_count,
            'intervalUnit'           => $this->interval,
            'startDate'              => date('Y-m-d'),
            'totalOccurrences'       => '9999',
            'trialOccurrences'       => '0',
            'amount'                 => $this->price,
            'trialAmount'            => '0.00',
            'creditCardCardNumber'   => '',
            'creditCardExpirationDate' => '',
            'creditCardCardCode' => ''
        ]);
    }
}

登錄后復制

authorizeNetPlan方法將創建Authorize.net訂閱計劃并返回相關的信息。

    處理訂閱付款

一旦訂閱計劃已經創建,現在就可以向訂閱者發送訂閱鏈接。接下來,訂閱者可以使用Link點擊鏈接進行訂閱付款。

在創建訂閱時,需要設置訂閱計劃和用戶相關信息。

以下是一個示例控制器方法:

public function subscribe(Request $request, Plan $plan)
{
    $user = $request->user();
    
    $subscription = $user->newSubscription('default', $plan->stripe_id)->create($request->stripeToken);

    $authorizeSubscription = $plan->authorizeNetPlan();

    $subscription->authorize_net_id = $authorizeSubscription->getSubscriptionId();
    $subscription->save();

    return redirect()->route('home')->with('success', 'Subscription successful');
}

登錄后復制

在該示例中,我們使用newSubscription方法為用戶創建新的訂閱。注意,$request->stripeToken是使用Stripe Checkout生成的令牌。getUserPlan方法在Plan模型中定義,用于獲取當前用戶的訂閱計劃。

在創建訂閱后,我們將創建的Authorize.net訂閱計劃的ID保存到Subscription模型中。

    處理取消訂閱

當用戶想要取消訂閱時,需要執行以下操作:

public function cancel(Request $request)
{
    $user = $request->user();

    $subscription = $user->subscription('default');

    $authorizeSubscription = AuthorizeNet_Subscription::cancel($subscription->authorize_net_id);
    
    $subscription->cancel();
    
    return redirect()->route('home')->with('success', 'Subscription cancelled.');
}

登錄后復制

在該示例中,我們使用cancel方法取消用戶的Laravel Cashier訂閱計劃,并使用Authorize.net中提供的方法取消訂閱計劃。

總結

使用Laravel Cashier和Authorize.net處理訂閱付款非常簡單。僅需按照以上步驟即可快速設置和實現。Laravel Cashier提供了便捷的付款工具,何不實現這樣一種新模式,以滿足日益變化的市場需求呢?

以上就是Laravel開發:如何使用Laravel Cashier和Authorize.net處理訂閱付款?的詳細內容,更多請關注www.xfxf.net其它相關文章!

分享到:
標簽:Authorizenet Cashier laravel
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定