asdh/laravel-khalti

一个用于验证Khalti支付的Laravel包。

1.0 2020-05-25 05:43 UTC

README

用于验证Khalti支付的包。

安装

composer require asdh/laravel-khalti

发布配置文件

要发布配置文件,请运行以下命令。

php artisan vendor:publish --provider="AsDh\KhaltiServiceProvider" --tag="khalti"

此命令将在配置目录中添加 khalti.php 文件,您可以在其中添加公钥和私钥。

它看起来像这样。

<?php

return [
    /**
     * The public key that you receive from khalti
     */
    'public_key' => env('KHALTI_PUBLIC_KEY'),

    /**
     * The secret key that you receive from khalti
     */
    'secret_key' => env('KHALTI_SECRET_KEY'),

    /**
     * The url that is used to verify khalti payment
     */
    'verification_url' => env('KHALTI_VEFIRICATION_URL', 'https://khalti.com/api/v2/payment/verify/')
];

使用方法

<?php

namespace App\Http\Controllers;

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

class KhaltiVerificationController extends Controller
{
    public function verify(Request $request, Khalti $khalti)
    {
        $khalti->withToken($request->token)
            ->withAmount((int) $request->amount)
            ->verify();

        if($khalti->hasError()) {
            $errorMessage = $khalti->errorMessage();

            // perform your action
            return $errorMessage;
        }

        // The payment is verified
        // perform your action
        return $khalti->response();
    }
}

amount 必须以paisa为单位。 token 是在成功支付后从Khalti获得的。

您不仅可以通过检查是否有错误来验证支付,还可以这样验证支付是否已验证。

<?php

namespace App\Http\Controllers;

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

class KhaltiVerificationController extends Controller
{
    public function verify(Request $request, Khalti $khalti)
    {
        $khalti->withToken($request->token)
            ->withAmount((int) $request->amount)
            ->verify();

        if($khalti->isVerified()) {
            $response = $khalti->response();

            // perform your action
            return $response;
        }

        // The payment is not verified
        // perform your action
        return $khalti->errorMessage();
    }
}

有一个 statusCode 方法可以获取Khalti响应的状态码。

$khalti->statusCode();

如果此包有任何问题,请创建一个问题。我将很高兴解决这个问题。