Laravel 10和11版本的Paynamics Paygate SDK服务提供者

1.0.3 2024-08-26 08:27 UTC

This package is not auto-updated.

Last update: 2024-09-24 06:59:19 UTC


README

一个用于Paynamics PayGate API的Laravel PHP库

安装

composer require laravel-paynamics/paygate

使用

初始化客户端

纯PHP

$client = new \Laravel\Paynamics\Paygate\Client([
    'merchant_id'     => 'YOUR MERCHANT ID,
    'merchant_key'    => 'YOUR MERCHANT KEY',
    'sandbox'         => (true|false),
    'sandbox_url'     => 'TESTING URL',
    'production_url'  => 'PRODUCTION URL',
]);
创建请求体

请参考API文档中的请求体参数。

$requestBody = new \Laravel\Paynamics\Paygate\RequestBody([
    'request_id' => substr(uniqid(), 1, 13),
    'fname' => 'Paynamics',
    'lname' => 'Buyer',
    'address1' => '101 Oval St.',
    'city' => 'Pasig City',
    'state' => 'Metro Manila',
    'country' => 'PH',
    'zip' => '1600',
    'email' => 'buyer@example.com',
    'phone' => '+63 123 4567',
    'mobile' => '+63 999 123 4567',
    'currency' => 'PHP',
    'descriptor_note' => 'PayGate Sample Merchant',

    'notification_url' => 'http://example.com/notify',
    'response_url' => 'http://example.com/success',
    'cancel_url' => 'http://example.com/cancel',
    'mtac_url' => 'http://example.com/tnc',
    'mlogo_url' => 'http://example.com/assets/logo.png',
]);
创建商品组和添加商品

使用addItem方法逐个添加商品详情(名称、数量、金额)。

$items = new \Paynamics\Paygate\ItemGroup;

$items->addItem([
    'name' => 'Sample Item',
    'quantity' => 1,
    'amount' => 100,
]);
将商品组设置到请求体中

这将根据请求体绑定商品,并计算其总金额。

$requestBody->setItemGroup($items);
执行

Client的所有请求将返回一个字符串形式的自动提交表单。

$client->responsivePayment($requestBody);

Laravel支持

  1. 将提供者添加到config/app.php
Laravel\Paynamics\Paygate\Laravel\ServiceProvider::class
  1. 将外观添加到config/app.php
'Paygate' => Laravel\Paynamics\Paygate\Laravel\Facades\Paygate::class
  1. 执行
php artisan vendor:publish --tag=config
  1. 将以下内容添加到您的.env文件中
PAYGATE_MERCHANT_ID=<YOUR MERCHANT ID>
PAYGATE_MERCHANT_KEY=<YOUR MERCHANT KEY>
PAYGATE_SANDBOX=<TRUE|FALSE>
PAYGATE_SANDBOX_URL=<PAYNAMICS_TESTING_URL>
PAYGATE_PRODUCTION_URL=<PAYNAMICS_PRODUCTION_URL>
PAYNAMICS_SERVER_IP_ADDRESS=<PAYNAMICS_SERVER_IP_ADDRESS>