Pages

20 June, 2022

Credit card validation in laravel

 

  • Validation rules for credit card using laravel-validation-rules/credit-card package in laravel

    Install package laravel-validation-rules/credit-card using composer command

    composer require laravel-validation-rules/credit-card

    Create the form request

    php artisan make:request CardVerificationRequest

    app/Http/Requests/CardVerificationRequest.php

    Import package (LVR\CreditCard) before the class (CardVerificationRequest) definition and after the namespace

    use LVR\CreditCard\CardCvc;
    use LVR\CreditCard\CardNumber;
    use LVR\CreditCard\CardExpirationYear;
    use LVR\CreditCard\CardExpirationMonth;

    Write rules and error message for validation

    public function authorize()
    {
        return true;
    }
    
    public function rules()
    {
        return [
            'card_number' => ['required', 'unique:cards,cardNo', new CardNumber],
            'expiration_year' => ['required', new CardExpirationYear($this->get('expiration_month'))],
            'expiration_month' => ['required', new CardExpirationMonth($this->get('expiration_year'))],
            'cvc' => ['required', new CardCvc($this->get('card_number'))]
        ];
    }
    
    public function messages()
    {
        return [
            'card_number.required' => 'The card number is compulsory'
        ];
    }

    Type-hint the CardVerificationRequest in our Controller’s store method

    Import cardVerificationRequest in controller

    use App\Http\Requests\CardVerificationRequest;

    Store method to store the card with CardVerificationRequest

    public function store(CardVerificationRequest $request)
    {
        $validatedData = $request->validated();
        $newCard = new Card;
        $newCard->cardNo = $validatedData["card_number"];
        $newCard->cardExpiringMonth = $validatedData["expiration_month"];
        $newCard->cardExpiringYear = $validatedData["expiration_year"];
        $newCard->cardCVV = $validatedData["cvc"];
    
    $newCard->save();
    return response()->json([ "status" => "success", "msg" => "Card saved successfully.", "data" => $newCard ], StatusCodes::SUCCESS);

    You can use laravel-validation-rules/credit-card package to validate credit card details in laravel. You can create a form request and use the controller's method with type hint to validate the provided credit card information by the user.


No comments:

Post a Comment

Thanks