Laravel Packages

Easily Create Stripe Tokens and Cards For Testing

Published
Easily Create Stripe Tokens and Cards For Testing image

When you are building a payment flow with Stripe there are a lot of different flows for you to test. These include successful charges and a plethora of failed options. Such as invalid CVC, invalid address, expired cards, declines, and more.

To make testing all these different flows easier, Jacob Bennett created a StripeTestToken package so you can easily create tokens for each case.

Testing Successful Charges

To test successful charges you can use one of the following methods from the package:

  • validVisa
  • validVisaDebit
  • validMastercard
  • validMastercardDebit
  • validMastercardPrepaid
  • validAmex
  • validDiscover
  • validDinersClub
  • validJCB

Here is an example using the StripeTestToken::validVisa() method to create a valid Visa card token and allows the charge to go through successfully.

use JacobBennett\StripeTestToken;
use Stripe\Charge;
 
StripeTestToken::setApiKey('your_stripe_secret_test_key');
 
Charge::create([
'amount' => 500,
'curreny' => 'usd',
'source' => StripeTestToken::validVisa(),
]);

Testing Failed Transactions

Testing failed transactions work in a similar fashion, but you will want to wrap it in a try/catch so you can consume the Stripe exception:

try {
 
Charge::create([
'amount' => 500,
'curreny' => 'usd',
'source' => StripeTestToken::cvcFail(),
]);
 
} catch (\Stripe\Error\Card $e) {
// handle errors
}

Other failed methods include:

  • addressZipFail
  • addressFail
  • zipFail
  • addressZipUnavailable
  • cvcFail
  • customerChargeFail
  • successWithReview
  • declineCard
  • declineFraudulentCard
  • declineIncorrectCvc
  • declineExpiredCard
  • declineProcessingError
  • declineIncorrectNumber

Generating Test Card Numbers

If you are utilizing browser testing you may want to test the checkout flow using card numbers and this feature is included as well. Instead of calling StripeTestToken::validVisa() you utilize StripeCardNumber::validVisa().

This StripeTestToken package looks like a great addition to your testing workflow when you are working with Stripe.

Eric L. Barnes photo

Eric is the creator of Laravel News and has been covering Laravel since 2012.

Sponsored

acquaintsoft logo
Acquaint Softtech

Hire Laravel developers with AI expertise at $20/hr. Get started in 48 hours.

Visit Acquaint Softtech

The latest

View all →
Volker Dusch on the PHP RCE Vulnerabilities and Disclosure image

Volker Dusch on the PHP RCE Vulnerabilities and Disclosure

Read article
Decide with Jev: Turn AI Answers into Decisions with PHP Rules image

Decide with Jev: Turn AI Answers into Decisions with PHP Rules

Read article
Skuul: Open-Source School Management Built on Laravel image

Skuul: Open-Source School Management Built on Laravel

Read article
Laravel Read Replicas: Prevent Stale Reads After a Write image

Laravel Read Replicas: Prevent Stale Reads After a Write

Read article
Screenshot: Capture Images and PDFs with PHP and Laravel image

Screenshot: Capture Images and PDFs with PHP and Laravel

Read article
Reset Sticky Database Connections Between Laravel Queue Jobs image

Reset Sticky Database Connections Between Laravel Queue Jobs

Read article