rez0sk/laravel-zarinpal

该包已废弃,不再维护。没有建议的替代包。

Laravel支付网关Zarinpal的包。

dev-master 2019-04-12 20:29 UTC

This package is auto-updated.

Last update: 2022-07-13 03:59:27 UTC


README

Build Status codecov StyleCI

Laravel支付网关Zarinpal的包。

此包提供了一个接口(laravel facade),您可以使用它并轻松地进行模拟!

功能

  • 可模拟性
  • 动态商户ID
  • 支持Zarinpal的沙箱

安装

composer require rez0sk/laravel-zarinpal

配置

在你的config/services.php文件中添加以下配置

'zarinpal' => [
        'merchant_id' => env('ZARINPAL_MERCHANT_ID'),
        'description' => 'Default description' // optional
]

然后将ZARINPAL_MERCHANT_ID添加到你的.env文件中。

沙箱模式(可选)

建议在local环境中启用沙箱模式。

如果你想这样做,请将这些行添加到你的AppServiceProvider类的boot函数中。

public function boot()
{
    if ($this->app->isLocal()) {
        Zarinpal::enableSandbox();
    }
}

使用

只需发出支付请求,并一次性将用户重定向到Zarinpal!

use Zarinpal\Facades\Zarinpal;
...

public function someControllerFunction ()
{
    return Zarinpal::pay(2000, route('paymnet.verify', $order->id))->redirect();
}

或者获取授权码并手动重定向

Zarinpal::pay(2000, 'http://callback.url/id')->payment->authority

您可以为支付提供一些其他信息

Zarinpal::pay(2000, 'http://callback.url/id', [
        'description' => 'This is such a dummy order!',
        'email' => 'User's email address',
        'phone' => 'User's phone number'
]);

动态商户ID

您可以在每次支付之前动态设置商户ID

Zarinpal::setMerchantID('xxxxx-xxxx-xxx');
Zarinpal::pay(...)

支付验证

public function verifyOrderPayment (Order $order, Request $request)
{
    $result = Zarinpal::verify($request, $order->TotalPrice);
    
    $result->status //Status code. 100 means success :)
    $result->RefID //Payment's unique ReferenceID
    $result->amount // Payment's amount in Tuman. (Always use Toman with Zarinpal)
    $result->description //Payment's description.
}

待办事项

  • CI设置。
  • 添加示例。
  • 改进测试。
  • 支持工资。