/StripeTestToken

Use this to quickly generate Stripe test tokens for successful or exceptional responses from Stripe.

Primary LanguagePHPMIT LicenseMIT

Stripe Test Tokens

Latest Version on Packagist Travis Software License

Use this to quickly create Stripe test tokens for successful and exceptional responses from Stripe.

Install

composer require jacobbennett/stripe-test-token

Usage

<?php

use JacobBennett\StripeTestToken;
use Stripe\Charge;

StripeTestToken::setApiKey('your_stripe_secret_test_key');

// Fake a Successful Charge

Charge::create([
        'amount' => 500,
        'currency' => 'usd',
        'source' => StripeTestToken::validVisa(),
]);


// Fake a Failing Charge

try {

        Charge::create([
                'amount' => 500,
                'currency' => 'usd',
                'source' => StripeTestToken::cvcFail(),
        ]);

} catch (\Stripe\Error\Card $e) {
        // handle errors
}

Docs

Find full descriptions at original Stripe Docs Reference

Using Methods

To use any of the methods below, call the listed method as a static on the StripeTestToken class. If you only want to return the corresponding card number, such as with Selenium or Laravel Dusk, you can call the same method on the StripeCardNumber class.

<?php 

\JacobBennett\StripeCardNumber::validVisa(); // Returns the valid Visa card number 4012888888881881
\JacobBennett\StripeTestToken::validVisa(); // Attempts to generate a token against the Stripe API for a valid Visa card

Test card numbers

Genuine card information cannot be used in test mode. Instead, use any of the following test card methods to create a successful payment token:

Method
validVisa
validVisaDebit
validMastercard
validMastercardDebit
validMastercardPrepaid
validAmex
validDiscover
validDinersClub
validJCB

Testing for specific responses and errors

The following methods can be used to create tokens that produce specific responses—useful for testing different scenarios and error codes. Verification checks only run when the required information is provided (e.g., for cvc_check to fail, a CVC code must be provided).

Method Description
successDirectToBalance Charge succeeds and funds will be added directly to your available balance (bypassing your pending balance).
addressZipFail The address_line1_check and address_zip_check verifications fail. If your account is blocking payments that fail ZIP code validation, the charge is declined.
addressFail Charge succeeds but the address_line1_check verification fails.
zipFail The address_zip_check verification fails. If your account is blocking payments that fail ZIP code validation, the charge is declined.
addressZipUnavailable Charge succeeds but the address_zip_check and address_line1_check verifications are both unavailable.
cvcFail If a CVC number is provided, the cvc_check fails. If your account is blocking payments that fail CVC code validation, the charge is declined.
customerChargeFail Attaching this card to a Customer object succeeds, but attempts to charge the customer fail.
successWithReview Charge succeeds with a risk_level of elevated and placed into review.
declineCard Charge is declined with a card_declined code.
declineFraudulentCard Charge is declined with a card_declined code and a fraudulent reason.
declineIncorrectCvc Charge is declined with an incorrect_cvc code.
declineExpiredCard Charge is declined with an expired_card code.
declineProcessingError Charge is declined with a processing_error code.
declineIncorrectNumber Charge is declined with an incorrect_number code as the card number fails the Luhn check.

Testing

In order to run the full test suite, you must have STRIPE_KEY set in your environment, as the test will hit the Stripe API in order to generate a test token.

$ STRIPE_KEY=sk_test_YourTestKeyHere phpunit tests/

License

This project is open-sourced software licensed under the MIT license