laravel-pay/myfatoorah

MyFatoorah Laravel 库

dev-master 2023-10-04 21:45 UTC

This package is not auto-updated.

Last update: 2024-09-20 02:33:48 UTC


README

Latest Version on Packagist Total Downloads

这里应该放置您的描述。请限制为一到两段话。可以考虑添加一个小例子。

安装

您可以通过 composer 安装此包

composer require laravel-pay/myfatoorah "dev-master"

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="myfatoorah-config"

这是发布配置文件的内容

return [
    /**
     * API Token Key
     * Live Token: https://myfatoorah.readme.io/docs/live-token
     * Test Token: https://myfatoorah.readme.io/docs/test-token
     */
    'api_key' => env('MYFATOORAH_API_KEY'),
    /**
     * Test Mode
     * Accepted value: 'true' for the test mode or 'false' for the live mode
     */
    'test_mode' => env('MYFATOORAH_TEST_MODE', true),
    /**
     * Country ISO Code
     * Accepted value: KWT, SAU, ARE, QAT, BHR, OMN, JOD, or EGY.
     */
    'country_iso' => env('MYFATOORAH_COUNTRY_ISO', 'KWT'),

    'enable_routes' => true,
];

您可以使用此 API 密钥进行测试

MYFATOORAH_API_KEY='rLtt6JWvbUHDDhsZnfpAhpYk4dxYDQkbcPTyGaKp2TYqQgG7FGZ5Th_WD53Oq8Ebz6A53njUoo1w3pjU1D4vs_ZMqFiz_j0urb_BH9Oq9VZoKFoJEDAbRZepGcQanImyYrry7Kt6MnMdgfG5jn4HngWoRdKduNNyP4kzcp3mRv7x00ahkm9LAK7ZRieg7k1PDAnBIOG3EyVSJ5kK4WLMvYr7sCwHbHcu4A5WwelxYK0GMJy37bNAarSJDFQsJ2ZvJjvMDmfWwDVFEVe_5tOomfVNt6bOg9mexbGjMrnHBnKnZR1vQbBtQieDlQepzTZMuQrSuKn-t5XZM7V6fCW7oP-uXGX-sMOajeX65JOf6XVpk29DP6ro8WTAflCDANC193yof8-f5_EYY-3hXhJj7RBXmizDpneEQDSaSz5sFk0sV5qPcARJ9zGG73vuGFyenjPPmtDtXtpx35A-BVcOSBYVIWe9kndG3nclfefjKEuZ3m4jL9Gg1h2JBvmXSMYiZtp9MR5I6pvbvylU_PP5xJFSjVTIz7IQSjcVGO41npnwIxRXNRxFOdIUHn0tjQ-7LwvEcTXyPsHXcMD8WtgBh-wxR8aKX7WPSsT1O8d8reb2aR7K3rkV3K82K_0OgawImEpwSvp9MNKynEAJQS6ZHe_J_l77652xwPNxMRTMASk1ZsJL'

并使用测试卡

https://docs.myfatoorah.com/docs/test-cards

用法

如果您启用了路由(仅限本地测试)

'enable_routes' => true,

那么您有两个路由

localhost/myfatoorah
localhost/myfatoorah/callback

或者您可以选择禁用它们并创建自己的路由

Route::get('pay/myfatoorah' , [MyFatoorahController::class , 'index'])->name('pay.myfatoorah.index')
Route::get('pay/myfatoorah/callback' , [MyFatoorahController::class , 'callback'])->name('pay.myfatoorah.callback')
<?php

use Illuminate\Http\Response;
use LaravelPay\MyFatoorah\Facades\Payment;

class MyFatoorahController
{
    public function index()
    {
        try {
            $paymentMethodId = 0; // 0 for MyFatoorah invoice or 1 for Knet in test mode
            $callbackURL = route('pay.myfatoorah.callback');
            $orderId = 12345;
            $data = Payment::getInvoiceURL(
                curlData : [
                    'CustomerName' => 'FName LName',
                    'InvoiceValue' => '10',
                    'DisplayCurrencyIso' => 'KWD',
                    'CustomerEmail' => 'test@test.com',
                    'CallBackUrl' => $callbackURL,
                    'ErrorUrl' => $callbackURL,
                    'MobileCountryCode' => '+965',
                    'CustomerMobile' => '12345678',
                    'Language' => 'en',
                    'CustomerReference' => $orderId,
                    'SourceInfo' => 'Laravel '.app()::VERSION,
                ],
                gatewayId : $paymentMethodId
            );
    
            return response()->json(['IsSuccess' => 'true', 'Message' => 'Invoice created successfully.', 'Data' => $data]);
        } catch (\Exception $e) {
            return response()->json(['IsSuccess' => 'false', 'Message' => $e->getMessage()]);
        }
    }
    
    public function callback()
    {
        try {
            $data = Payment::getPaymentStatus(request('paymentId'), 'PaymentId');
    
            if ($data->InvoiceStatus == 'Paid') {
                $msg = 'Invoice is paid.';
            } elseif ($data->InvoiceStatus == 'Failed') {
                $msg = 'Invoice is not paid due to '.$data->InvoiceError;
            } elseif ($data->InvoiceStatus == 'Expired') {
                $msg = 'Invoice is expired.';
            }
    
            return response()->json(['IsSuccess' => 'true', 'Message' => $msg, 'Data' => $data]);
        } catch (\Exception $e) {
            return response()->json(['IsSuccess' => 'false', 'Message' => $e->getMessage()]);
        }
    }
}

测试

composer test

变更日志

有关最近更改的更多信息,请参阅 变更日志

贡献

有关详细信息,请参阅 贡献指南

安全漏洞

请查看 我们的安全策略 了解如何报告安全漏洞。

鸣谢

许可协议

MIT 许可协议(MIT)。有关更多信息,请参阅 许可文件