在本教程中,咱们将看到如何在开发开源发卡网源码。发卡网零碎是为互联网企业提供在线领取服务的公司。发卡网零碎是一套领取api,反对各种规模的在线业务的商业活动,包含欺诈预防和订阅治理。发卡网零碎的领取平台,用于承受和解决易于应用的电子商务解决方案的在线领取。
残缺源码:fakaysw.top
发卡网零碎源码领取网关集成到许多网站,用于向客户收款。在这个时候很多电商网站和其余购物网站都是应用条纹领取网关。因而,在这里咱们将学习发卡网零碎领取网关集成,咱们应用的是stripe/stripe-php包。
那么,让咱们一步一步来看看如何在发卡网源码中集成领取网关。
步骤1:创立发卡网源码内核
第二步:在Laravel中装置Stripe Payment Gateway Package
步骤3:配置分条领取网关
步骤4:创立路由
步骤5:增加控制器
步骤6:创立用于查看的刀片文件
步骤7:执行“示例”
步骤1:创立发卡网源码内核
在这一步中,咱们将为这个发卡网源码内核集成各渠道领取网关
composer create-project --prefer-dist laravel/laravel laravel_8_stripe_payment_gateway
第二步:在Laravel中装置Stripe Payment Gateway Package
当初,咱们正在laravel 8中应用composer命令装置一个条纹包。
composer require stripe/stripe-php
步骤3:配置分条领取网关
当初,咱们正在配置条纹领取网关如下图和代码。如果你没有一个stripe帐户,而后创立一个帐户在stripe。
你能够看到上面的条纹仪表板,在这个图像中你能够看到条纹的密钥和机密密钥。
stripe_payment_gateway_api_key
当初,关上.env文件并设置STRIPE_KEY和STRIPE_SECRET。
STRIPE_KEY=pk_test_xxxxxx STRIPE_SECRET=sk_test_xxxxxx
之后,咱们须要设置条纹API密钥。因而,关上config/services.php文件并增加以下代码。
'stripe' => [ 'secret' => env('STRIPE_SECRET'), ],
步骤4:创立路由
在此步骤中,按如下步骤创立路由。
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\StripeController; Route::get('stripe', [StripeController::class, 'stripe']); Route::post('stripe', [StripeController::class, 'stripePost'])->name('stripe.post');
步骤5:增加控制器
我曾经为这个示例创立了StripeController。因而,在控制器中复制以下代码。
<?php namespace App\Http\Controllers; use Session; use Stripe; use Illuminate\Http\Request; class StripeController extends Controller { public function stripe() { return view('stripe'); } public function stripePost(Request $request) { Stripe\Stripe::setApiKey(env('STRIPE_SECRET')); Stripe\Charge::create ([ "amount" => 100*100, "currency" => "INR", "source" => $request->stripeToken, "description" => "This is test payment", ]); Session::flash('success', 'Payment Successful !'); return back(); } }
步骤6:创立用于查看的刀片文件
在这一步中,我创立了用于查看的stripe.blade.php。因而,将以下代码增加到您的文件中。
<!DOCTYPE html> <html> <head> <title>How To Integrate Stripe Payment Gateway In Laravel 8 - Techsolutionstuff</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> </head> <body> <div class="container"> <div class="row"> <h3 style="text-align: center;margin-top: 40px;margin-bottom: 40px;">How To Integrate Stripe Payment Gateway In Laravel 8 - Techsolutionstuff</h3> <div class="col-md-6 col-md-offset-3"> <div class="panel panel-default credit-card-box"> <div class="panel-heading" > <div class="row"> <h3>Payment Details</h3> </div> </div> <div class="panel-body"> @if (Session::has('success')) <div class="alert alert-success text-center"> <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a> <p>{{ Session::get('success') }}</p><br> </div> @endif <br> <form role="form" action="{{ route('stripe.post') }}" method="post" class="require-validation" data-cc-on-file="false" data-stripe-publishable-key="{{ env('STRIPE_KEY') }}" id="payment-form"> @csrf <div class='form-row row'> <div class='col-xs-12 col-md-6 form-group required'> <label class='control-label'>Name on Card</label> <input class='form-control' size='4' type='text'> </div> <div class='col-xs-12 col-md-6 form-group required'> <label class='control-label'>Card Number</label> <input autocomplete='off' class='form-control card-number' size='20' type='text'> </div> </div> <div class='form-row row'> <div class='col-xs-12 col-md-4 form-group cvc required'> <label class='control-label'>CVC</label> <input autocomplete='off' class='form-control card-cvc' placeholder='ex. 311' size='4' type='text'> </div> <div class='col-xs-12 col-md-4 form-group expiration required'> <label class='control-label'>Expiration Month</label> <input class='form-control card-expiry-month' placeholder='MM' size='2' type='text'> </div> <div class='col-xs-12 col-md-4 form-group expiration required'> <label class='control-label'>Expiration Year</label> <input class='form-control card-expiry-year' placeholder='YYYY' size='4' type='text'> </div> </div> <div class="form-row row"> <div class="col-xs-12"> <button class="btn btn-primary btn-lg btn-block" type="submit">Pay Now</button> </div> </div> </form> </div> </div> </div> </div> </div> </body> </html> <script type="text/javascript" src="https://js.stripe.com/v2/"></script> <script type="text/javascript"> $(function() { var $form = $(".require-validation"); $('form.require-validation').bind('submit', function(e) { var $form = $(".require-validation"), inputSelector = ['input[type=email]', 'input[type=password]', 'input[type=text]', 'input[type=file]', 'textarea'].join(', '), $inputs = $form.find('.required').find(inputSelector), $errorMessage = $form.find('div.error'), valid = true; $errorMessage.addClass('hide'); $('.has-error').removeClass('has-error'); $inputs.each(function(i, el) { var $input = $(el); if ($input.val() === '') { $input.parent().addClass('has-error'); $errorMessage.removeClass('hide'); e.preventDefault(); } }); if (!$form.data('cc-on-file')) { e.preventDefault(); Stripe.setPublishableKey($form.data('stripe-publishable-key')); Stripe.createToken({ number: $('.card-number').val(), cvc: $('.card-cvc').val(), exp_month: $('.card-expiry-month').val(), exp_year: $('.card-expiry-year').val() }, stripeResponseHandler); } }); function stripeResponseHandler(status, response) { if(response.error) { $('.error') .removeClass('hide') .find('.alert') .text(response.error.message); }else { /* token contains id, last4, and card type */ var token = response['id']; $form.find('input[type=text]').empty(); $form.append("<input type='hidden' name='stripeToken' value='" + token + "'/>"); $form.get(0).submit(); } } }); </script>
同样你会失去低于输入的后果。
Testing Card Credential Card Name: Test // any other name you can use here Card Number: 4242424242424242 Month: Any Future Month Year: Any Future Year CVV: 123