Spark 9.0 provides compatibility with Laravel 6.0 and Cashier 10.0. Cashier 10 includes support for European Strong Customer Authentication (SCA) regulations.
Spark 9.0 drops support for the Braintree payment system.
If you installed Spark via the spark
CLI tool, you may run the spark:update
Artisan command:
php artisan spark:update --major
If you installed Spark via Composer, you may simply update your dependency version in your composer.json
file and run the composer update
command. Of course, in order for your GitHub user to access the repository, you should first join this repository in the Spark dashboard:
"laravel/spark-aurelius": "~9.0"
Cashier 10.0 uses webhooks to update subscription statuses for users of your application. For this to work, you need to add a stripe_status
to your subscription tables. You may create the add_stripe_status_to_subscriptions
migration manually and paste the following code into the file:
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddStripeStatusToSubscriptions extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('subscriptions', function (Blueprint $table) {
$table->string('stripe_status')->nullable();
});
Schema::table('team_subscriptions', function (Blueprint $table) {
$table->string('stripe_status')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('subscriptions', function (Blueprint $table) {
$table->dropColumn('stripe_status');
});
Schema::table('team_subscriptions', function (Blueprint $table) {
$table->dropColumn('stripe_status');
});
}
}
Replace STRIPE_MODEL
with CASHIER_MODEL
in your .env file.
Remove the following listeners from your App\Providers\EventServiceProvider
file:
UpdateOwnerSubscriptionQuantity
UpdateTeamSubscriptionQuantity
If you're overriding the register()
method of the SparkServiceProvider
in your app, you'll need to call parent::register()
.
public function register()
{
parent::register();
}
Add the following translation line to your language files. For example, in your /resources/lang/en.json
file.
"Please :linkOpen confirm your payment :linkClose to activate your subscription!": "Please :linkOpen confirm your payment :linkClose to activate your subscription!"
Spark::useStripe()
MethodSince Spark 9.0 only supports Stripe, this method was removed. You should remove any calls to this method from your SparkServiceProvider
.
Spark 9.0 follows the currency configuration of Cashier 10.0, for that the Cashier::useCurrency()
and Cashier::usesCurrencySymbol()
were removed.
package.json
DependenciesIn your package.json
file update the laravel-mix
dependency to the latest version:
"laravel-mix": "^4.0.7"
Additionally, add the following dependencies:
"dinero.js": "^1.6.0",
"resolve-url-loader": "3.1.0",
"sass": "^1.22.5",
"sass-loader": "7.*",
"sweetalert2": "^8.13.6",
"vue-template-compiler": "^2.6.10"
Finally, remove the sweetalert
dependency.
Remove the following lines from the /resources/js/spark-components/bootstrap.js
file:
require('./auth/register-braintree');
require('./settings/subscription/subscribe-braintree');
require('./settings/payment-method-braintree');
require('./settings/payment-method/update-payment-method-braintree');
Replace the following line:
.copy('node_modules/sweetalert/dist/sweetalert.min.js', 'public/js/sweetalert.min.js')
With this:
.copy('node_modules/sweetalert2/dist/sweetalert2.min.js', 'public/js/sweetalert.min.js')
Once you have made these changes, you can run npm install
to install the new dependencies and then npm run dev
to compile your assets.