aqshah20/mezpay

MezPay:一款无缝的Laravel支付网关包,支持安全的Meezan Bank支付处理。简化与Meezan Bank电子商务支付网关的集成,支持Stripe、PayPal、Braintree等。

V1.2 2023-07-23 09:27 UTC

This package is auto-updated.

Last update: 2024-09-23 16:21:04 UTC


README

License

简介

MezPay是一款无缝的Laravel支付网关包,支持安全的Meezan Bank支付处理。它简化了与Meezan Bank电子商务支付网关的集成过程,允许您轻松进行交易。

此包由AQ Shah开发,他是一位全栈Laravel开发者,热衷于为Laravel应用程序创建高效可靠的支付处理解决方案。

如何设置

步骤1:安装包

您可以通过Composer安装MezPay包。打开您的终端并运行以下命令

composer require aqshah20/mezpay

步骤2:注册MezPay服务提供者

安装包后,您需要在Laravel应用程序中注册MezPay服务提供者。打开config/app.php并在providers数组中添加以下行

'providers' => [
    // Other service providers...
    MezPay\MezPayServiceProvider::class,
]

步骤3:发布配置和迁移

要发布MezPay包的配置和迁移,请在您的终端中运行以下Artisan命令

php artisan vendor:publish --tag=config

php artisan vendor:publish --tag=mezpay-migrations --ansi

php artisan migrate

发布后,您可以在位于config/mezpay.php的生成配置文件中设置您的API凭据

return [
    'username' => env('MEZPAY_USERNAME', ''),
    'password' => env('MEZPAY_PASSWORD', ''),
    'success_callback' => env('MEZPAY_SUCCESS_CALLBACK', ''),
    'failed_callback' => env('MEZPAY_FAILED_CALLBACK', ''),
];

配置

您可以通过调整config/mezpay.php文件中的以下设置来自定义包

return [
    'username' => env('MEZPAY_USERNAME', ''),
    'password' => env('MEZPAY_PASSWORD', ''),
    'success_callback' => env('MEZPAY_SUCCESS_CALLBACK', 'success'),
    'failed_callback' => env('MEZPAY_FAILED_CALLBACK', 'failed'),
];

处理支付回调

配置MezPay包后,您需要创建路由来处理支付成功和失败的回调。

步骤1:创建路由

在您的routes/web.php文件中,添加以下路由来处理支付成功和失败的回调

use App\Http\Controllers\OrdersController;

Route::get('/success/{orderId?}', [OrdersController::class, 'orderSucceeded'])->name('success');
Route::get('/failed/{orderId?}', [OrdersController::class, 'orderFailed'])->name('failed');

步骤2:实现控制器方法

接下来,如果您还没有创建OrdersController,请创建它。在控制器中,实现orderSucceeded和orderFailed方法来处理支付回调响应

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class OrdersController extends Controller
{
    public function orderSucceeded(Request $request)
    {
        // Get the orderId from the URL parameter or any other source as needed
        $orderId = $request->orderId;

        // Perform actions for successful payment
        // For example, update order status, send notifications, etc.

        // You can also pass the $orderId to a view if needed
        return view('success', compact('orderId'));
    }

    public function orderFailed(Request $request)
    {
        // Get the orderId from the URL parameter or any other source as needed
        $orderId = $request->orderId;

        // Perform actions for failed payment
        // For example, update order status, send notifications, etc.

        // You can also pass the $orderId to a view if needed
        return view('failed', compact('orderId'));
    }
}

如何使用

要使用MezPay,请按照以下步骤操作

步骤1:导入MezPayFacade

在您想要使用它的控制器或模型文件顶部导入MezPayFacade

use MezPay\Facade\MezPayFacade;

步骤2:注册订单

使用registerOrder方法使用最小必要的参数注册订单

$paymentGateway = MezPayFacade::registerOrder([
    'order_id' => 152,
    'currency' => 586, // 586 = PKR | 540 = USD
    'amount' => 2000,
]);

订单注册和支付

用户成功注册订单后,他们将被重定向到结账页面,在那里他们可以输入卡信息以继续支付。以下图像显示了结账页面的示例

支付状态重定向

完成结账并提交支付详情后

  • 如果支付成功,用户将被自动重定向到成功路由,在那里他们将收到确认信息和任何其他相关信息。
  • 如果支付失败,用户将被重定向到失败路由,在那里他们将收到通知和进一步的说明。
  • 正确配置这些重定向路由对于处理支付状态并向用户提供基于支付过程结果的适当响应至关重要。

请确保重定向路由正确设置,以提供无缝且用户友好的支付体验。

如何获取订单状态

要获取订单状态,只需调用 getOrderStatus(152) 方法,将 orderId 作为参数。

// Call getOrderStatus method with orderId
$response = MezPayFacade::getOrderStatus(152);

// Dump the response for debugging
dd($response);

调用后,您将收到一个数组结果,如下所示

array:17 [
  "errorCode" => "0"
  "errorMessage" => "Success"
  "orderNumber" => "152"
  "orderStatus" => 2
  "actionCode" => 0
  "actionCodeDescription" => "Request processed successfully"
  "amount" => 2000
  "currency" => "586"
  "date" => 1689879175356
  "ip" => "39.57.43.95"
  "merchantOrderParams" => array:3 [▶]
  "attributes" => array:1 [▶]
  "cardAuthInfo" => array:3 [▶]
  "authDateTime" => 1689879256478
  "terminalId" => "10007077"
  "authRefNum" => "000025936268"
  "fraudLevel" => 0
]

许可证

此MezPay包是开源软件,根据MIT许可证授权。更多信息请参阅LICENSE 文件。

贡献和反馈

欢迎贡献、问题和反馈!如果您遇到任何问题或对改进有建议,请随时在GitHub上创建问题。

感谢您选择MezPay简化与Meezan Bank支付网关的集成。我们希望此包简化您的支付处理并增强交易的安全性。如果您有任何问题或需要进一步的帮助,请随时联系。祝您编码愉快!