拉拉维尔10中的条纹付款10
#php #laravel #stripe #payment

条纹付款集成

Stripe是一个受欢迎的付款处理平台,允许企业无缝接受在线支付。在本教程中,我们将指导您完成将条纹付款集成到Laravel Web应用程序中的过程。在本指南结束时,您将可以使用Stripe的安全有效的付款系统接受用户的付款。

先决条件

我们开始之前,请确保您有以下先决条件:

  1. 对Laravel和Web开发的基本理解。
  2. 一个条纹帐户以获取必要的API键。如果您没有一个,则可以在Stripe's official website免费注册。

第1部分:设置Laravel项目

首先,让我们设置一个新的Laravel项目或使用现有项目。如果您是从头开始的,则可以使用以下命令创建一个新的Laravel项目:

composer create-project --prefer-dist laravel/laravel stripe-payment
cd stripe-payment

接下来,我们需要安装所需的软件包进行条纹集成。打开终端并运行以下命令:

composer require stripe/stripe-php

安装软件包后,您需要设置环境变量。在您的Laravel项目的根部,创建一个.env文件并添加以下行:

STRIPE_KEY=your_stripe_publishable_key
STRIPE_SECRET=your_stripe_secret_key

用实际条纹API键替换your_stripe_publishable_keyyour_stripe_secret_key

第2部分:创建Stripe.blade.php视图

现在,让我们创建付款表的视图。在您的resources/views目录中,创建一个名为stripe.blade.php的新文件并添加以下代码:

<!DOCTYPE html>
<html>
<head>
    <title>Card Payment</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>

<div class="container">
    <h1>Stripe Payment from your card</h1>

    <div class="row">
        <div class="col-md-6 col-md-offset-3">
            <div class="panel panel-default credit-card-box">
                <div class="panel-heading display-table" >
                    <h2 class="panel-title">Checkout Forms</h2>
                </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>
                        </div>
                    @endif

                    <form id='checkout-form' method='post' action="{{ route('stripe.post') }}">   
                        @csrf             
                        <input type='hidden' name='stripeToken' id='stripe-token-id'>                              
                        <br>
                        <div id="card-element" class="form-control"></div>
                        <button 
                            id='pay-btn'
                            class="btn btn-success mt-3"
                            type="button"
                            style="margin-top: 20px; width: 100%;padding: 7px;"
                            onclick="createToken()">PAY $10
                        </button>
                    </form>
                </div>
            </div>        
        </div>
    </div>
</div>
</body>

<script src="https://js.stripe.com/v3/"></script>
<script type="text/javascript">
    var stripe = Stripe('{{ env('STRIPE_KEY') }}')
    var elements = stripe.elements();
    var cardElement = elements.create('card');
    cardElement.mount('#card-element');

    /*------------------------------------------
    --------------------------------------------
    Create Token Code
    --------------------------------------------
    --------------------------------------------*/
    function createToken() {
        document.getElementById("pay-btn").disabled = true;
        stripe.createToken(cardElement).then(function(result) {

            if (typeof result.error != 'undefined') {
                document.getElementById("pay-btn").disabled = false;
                alert(result.error.message);
            }

            /* creating token success */
            if (typeof result.token != 'undefined') {
                document.getElementById("stripe-token-id").value = result.token.id;
                document.getElementById('checkout-form').submit();
            }
        });
    }
</script>
</html>

第3部分:Web.php路由

routes/web.php文件中,添加以下路由以处理付款:

<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\StripePaymentController;

Route::get('/', function () {
    return view('welcome');
});

Route::get('/stripe', [StripePaymentController::class, 'stripe']);
Route::post('/stripe', [StripePaymentController::class, 'stripePost'])->name('stripe.post');

第4部分:drackepaymentcontroller.php控制器

接下来,让我们创建控制器来处理付款逻辑。在app/Http/Controllers目录中,创建一个名为StripePaymentController.php的新文件,并添加以下代码:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Stripe;
use Illuminate\View\View;
use Illuminate\Http\RedirectResponse;

class StripePaymentController extends Controller
{
    /**
     * success response method.
     *
     * @return \Illuminate\Http\Response
     */
    public function stripe(): View
    {
        return view('stripe');
    }

    /**
     * success response method.
     *
     * @return \Illuminate\Http\Response
     */
    public function stripePost(Request $request): RedirectResponse
    {
        Stripe\Stripe::setApiKey(env('STRIPE_SECRET'));

        Stripe\Charge::create([
            "amount" => 100 * 100,
            "currency" => "usd",
            "source" => $request->stripeToken,
            "description" => "Test payment from your card"
        ]);

        return back()
            ->with('success', 'Payment successful!');
    }
}

第5部分:进行测试付款

现在是令人兴奋的部分 - 测试付款集成。要模拟付款,您可以使用以下测试卡详细信息:

  • 卡号:4242 4242 4242 4242
  • 到期日期(mm/yy):04/25
  • CVC:005
  • ZIP: 55555

请注意,这些是仅用于演示目的的测试卡详细信息。在真实的生产环境中,您需要使用有效的卡信息。

这是您可以测试付款的方法:

  1. 在您的Web浏览器中打开应用程序并导航到付款页面。
  2. 输入上面提供的测试卡详细信息。
  3. 单击“支付$ 10”按钮以启动付款。
  4. 如果付款成功,您应该看到一条成功的消息,表明付款成功。
  5. 您也可以检查条纹仪表板以查看

测试付款的详细信息。

请记住,当我们使用测试卡详细信息时,不会收取实际的钱,交易不会影响您的实际条纹帐户余额。

结论

恭喜!您已成功地将Stripe付款集成到Laravel Web应用程序中。现在,您可以使用Stripe的强大可靠付款系统安全地接受用户的付款。这种集成为您的应用程序获利并增强了用户体验。

要探索更多的条纹功能并将您的付款系统提升到一个新的水平,请务必查看官方条纹文档和资源。

我们希望您发现本分步指南对您有所帮助。愉快的编码!


在这个全面的博客中,读者将对如何将Stripe Adday集成到其Laravel应用程序中有清晰的了解。逐步指南和提供的测试卡详细信息允许他们在实时环境中实施之前安全测试付款集成。愉快的博客!(ghanshyam)。