卡久兹/laravel-paygate-payweb-3

Laravel 10+ 的 PayGate PayWeb3 集成

0.0.1 2024-06-03 20:49 UTC

This package is auto-updated.

Last update: 2024-09-07 13:41:47 UTC


README

Software License

本包是已废弃包 pwparsons/paygate 的延续。它提供了一个方便的方式将 PayGate 的 PayWeb3 API 集成到 Laravel 中。

PayGate 的官方文档可以在 这里 找到。

兼容性图表

包版本LaravelPHP
0.0.110.0+8.2+

安装

您可以通过 composer 安装此包:

composer require kajuzi/laravel-paygate-payweb-3

将以下变量添加到您的 .env 文件中,并为您自己的 PayGate 账户和配置设置正确的值:

PAYGATE_ID=
PAYGATE_SECRET=
PAYGATE_RETURN_URL=
PAYGATE_NOTIFY_URL=

可选地,您还可以设置:

PAYGATE_CURRENCY=
PAYGATE_COUNTRY=
PAYGATE_LOCALE=
PAYGATE_RETURN_URL=

该包将自动注册自己。

如果您想将配置文件发布到 config/paygate.php,请运行:

php artisan vendor:publish --provider="PWParsons\PayGate\PayGateServiceProvider"

使用方法

安装此包并在配置文件中填写值后,使用此包的工作将变得非常简单。以下所有示例都使用了外观。

创建交易

// Initiate transaction
$http = PayGate::initiate()
               ->withReference('pgtest_123456789')
               ->withAmount(32.99)
               ->withEmail('email@example.com')
               ->withCurrency('USD') // Optional: defaults to ZAR
               ->withCountry('USA') // Optional: defaults to ZAF
               ->withLocale('en-us') // Optional: defaults to 'en'
               ->withReturnUrl('https://website.com/return_url')
               ->withNotifyUrl('https://website.com/notify_url') // Optional
               ->create();

if ($http->fails()) {
    dump($http->getErrorCode());
    dump($http->getErrorMessage());
    dump($http->all());
}

// Redirect to PayGate's payment page
return PayGate::redirect();

初始化响应的示例可以在 文档 中找到。

查询交易

$http = PayGate::query()
               ->withPayRequestId('YOUR_PAY_REQUEST_ID_HERE')
               ->withReference('pgtest_123456789')
               ->create();

if ($http->fails()) {
    dump($http->getErrorCode());
    dump($http->getErrorMessage());
    dump($http->all());
}

dd($http->all());

查询响应的示例可以在 文档 中找到。

提示

Paygate 将向 RETURN_URL 和 NOTIFY_URL 发送 POST 请求。将它们添加到 VerifyCsrfToken 中间件中,以排除 CSRF 验证。例如:

class VerifyCsrfToken extends Middleware
{
    protected $except = [
        'return_url',
        'notify_url',
    ];
}

有用的方法

with 魔术方法允许您在对象的 'with' 单词之后设置一个字符串。它的工作方式与魔术获取器完全相同,除了它设置字段值并返回对象,以便您可以链式设置,例如:

$object->withReference('pgtest_123456789')
       ->withAmount(32.99)
       ->withEmail('email@example.com')
       ->withReturnUrl('https://my.return.url/page');

将导致以下结果:

{
    "REFERENCE": "pgtest_123456789",
    "AMOUNT": "3299",
    "EMAIL": "email@example.com",
    "RETURN_URL": "https://my.return.url/page"
}

get 魔术方法允许您在 'get' 单词之后调用任何字符串,并将返回该值,例如:

{
    "PAYGATE_ID": "10011072130",
    "PAY_REQUEST_ID": "23B785AE-C96C-32AF-4879-D2C9363DB6E8",
    "REFERENCE": "pgtest_123456789"
}

从对象获取数据

echo $object->getPaygateId();       // 10011072130
echo $object->getPayRequestId();    // 23B785AE-C96C-32AF-4879-D2C9363DB6E8
echo $object->getReference();       // pgtest_123456789

变更日志

请参阅 变更日志 了解最近有哪些变化。

贡献

请参阅 contributing.md 了解详细信息以及待办事项清单。

致谢

许可

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