Fatora 支付网关

dev-master 2021-03-02 20:34 UTC

This package is auto-updated.

Last update: 2024-09-29 05:49:48 UTC


README

Fatora Laravel 包

安装与使用

安装与配置

1- 使用 composer 安装当前版本的 groupedesign/fatora

composer require groupedesign/fatora

或 在 composer.json 中要求安装

{
    "require": {
        "groupedesign/fatora": "dev-master"
    }
}

然后在终端中运行 composer update 以将其拉入。

包的 service provider 将自动注册其服务提供者。

2- 发布配置文件

php artisan vendor:publish --provider="Groupedesign\Fatora\FatoraServiceProvider"

3- 按照上述建议发布配置文件后,您需要将 API 密钥添加到应用程序的 .env 文件中

FATORA_API_KEY=your_key_here

4- 在 kernal.php 中添加检查交易中间件

'checkTransactionStatus' => \Groupedesign\Fatora\Http\Middleware\CheckTransactionStatus::class

使用示例

1- 创建新的控制器

php artisan make:controller PaymentController

将此代码复制到您的控制器中

<?php

namespace App\Http\Controllers;

use Groupedesign\Fatora\Checkout;
use Illuminate\Http\Request;
use stdClass;
use Illuminate\Support\Str;

class PaymentController extends Controller
{
    public function index() {
        return view("payment.checkout");
    }

    public function checkout(Request $request)
    {
        $order = new stdClass();

        $order->orderNo              =  Str::random(15);
        $order->amount               =  $request->amount;
        $order->currencyCode         =  $request->currencyCode;
        $order->customerEmail        =  $request->customerEmail;
        $order->customerName         =  $request->customerName;
        $order->customerPhone        =  $request->customerPhone;
        $order->customerCountry      =  $request->customerCountry;
        $order->lang                 =  $request->lang;
        $order->note                 =  $request->note;
        return Checkout::checkout($order);
    }

    public function getSuccessPage($orderId = 0, $chkStatus = 0)
    {
        return view("payment.success", compact('orderId', 'chkStatus'));
    }

    public function getErrorPage($error_msg)
    {
        return view("payment.error", compact('error_msg'));
    }
}

2- 在 recources/views/payment 中创建新的 blade 文件 checkout.blade.php 并将此代码复制到其中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Fatora Payment Gateway</title>
</head>
<body>
    
    <form action="{{ route('payment.checkout') }}" method="POST">
        @csrf
        <input type="hidden"  name="amount" value="0">
        <input type="hidden"  name="currencyCode" value="QAR"> 
        <input type="hidden"  name="customerEmail" value="testPament@testPayment.com">
        <input type="hidden"  name="customerName" value="gust">
        <input type="hidden"  name="customerPhone" value="+9639449871">
        <input type="hidden"  name="customerCountry" value="QATAR">
        <input type="hidden"  name="lang" value="en">
        <input type="hidden"  name="status" value="pending">
        <input type="hidden"  name="note" value="Demo of Payment">
        <button class="btn btn-pay" name="submit" type="submit"><i class="fa fa-money"></i> Checkout </button>
    </form>
    
</body>
</html>

3- 在 routes/web.php 中复制此代码

Route::get('/', [PaymentController::class,'index']);

Route::post('/checkout', [PaymentController::class,'checkout'])->name('payment.checkout');

Route::group(['middleware' => ['checkTransactionStatus']], function()
{
    Route::get('/payment/success/{orderId?}/{chkStatus?}', [PaymentController::class,'getSuccessPage'])->name('payment.success');
    
});

Route::get('/payment/error/{error_msg}', [PaymentController::class,'getErrorPage'])->name('payment.error');

4- 设置成功 URL 和失败 URL

登录到您的 fatora 账户 登录 选择 集成 选择 设置

成功 URL https://:8000/payment/success

失败 URL https://:8000/payment/error

对于生产模式,将 https://:8000 替换为您的 域名

享受吧