mastani/laravel-idpay

IDPay 支付网关用于 Laravel https://idpay.ir

dev-master 2022-04-06 18:15 UTC

This package is auto-updated.

Last update: 2024-09-06 23:22:09 UTC


README

Laravel 中的 IDPay 网关。

Total Downloads Latest Stable Version Latest Unstable Version License

目录

Laravel 5.5 及以上版本安装

$ composer require mastani/laravel-idpay

该包将自动注册自身。

Laravel 5.4 版本的安装

$ composer require mastani/laravel-idpay

接下来,必须注册服务提供者

// config/app.php

'providers' => [
    ...
    mastani\IDPay\IDPayServiceProvider::class,
];

非 Laravel 环境下的安装

另一种方法是通过 composer 安装组件。

运行以下命令之一

$ composer require mastani/laravel-idpay

"mastani/laravel-idpay": "dev-master"

将其添加到 composer.json 文件的 require 部分。

用法

请求新支付

$pay = new IDPayPayment();
$response = $pay->setApiKey('IDPay API Key')
            ->setSandbox(true)
            ->setOrderID('10000') // Locally generated
            ->setCallback('https://my-website.com/callback')
            ->setPrice(50000)
            ->setName("Amin") // optional
            ->setPhone("09353361569") // optional
            ->setMail("amin@mail.com") // optional
            ->setDesc("Pay for bronze account") // optional
            ->request();
            
if ($response->is_successful) {
    // save payment details to database here
    
    return redirect()->to($response->link);
} else {
    // handle error
}
成功响应
[response_code] => 201
[is_successful] => true
[id] => 91cb30a55598f6dbdd0d4d7ad9613d88
[link] => https://idpay.ir/p/ws-sandbox/91cb30a55598f6dbdd0d4d7ad9613d88
失败响应
[response_code] => 406
[is_successful] => false
[error_code] => 34
[error_message] => مبلغ `amount` باید بیشتر از 10,000 ریال باشد

处理回调结果

$callback = new IDPayPaymentCallback($_POST);

if ($callback->is_successful) {
    echo 'Order: ' . $callback->orderId;
    echo 'Card Number: ' . $callback->cardNO;

    // verify payment with next method
} else {
    // handle error
}
成功响应
[is_successful] => false
[result] => "در انتظار تایید پرداخت"
[status] => "10"
[trackID] => "46868"
[ID] => "91cb30a55598f6dbdd0d4d7ad9613d88"
[orderID] => "10000"
[amount] => "50000"
[cardNO] => "123456******1234"
[date] => "1553961021"

验证支付

$verify = new IDPayVerify();
$response = $verify->setApiKey('IDPay API Key')
            ->setSandbox(true)
            ->setID('91cb30a55598f6dbdd0d4d7ad9613d88')
            ->setOrderID('10000')
            ->request();
            
if ($response->is_successful) {
    echo 'Order: ' . $response->order_id;
    echo 'Card Number: ' . $response->payment->card_no;
    
    // handle user credit here
} else {
    // handle error
}
成功响应
[response_code] => 200
[is_successful] => true
[status] => 101
[track_id] => 46826
[id] => 91cb30a55598f6dbdd0d4d7ad9613d88
[order_id] => 10000
[amount] => 50000
[date] => 1553954369
[payment] => stdClass Object
(
    [track_id] => 59670764
    [amount] => 50000
    [card_no] => 123456******1234
    [date] => 1553954369
)
[verify] => stdClass Object
(
    [date] => 1553954623
)
失败响应
[response_code] => 405
[is_successful] => false
[error_code] => 53
[error_message] => تایید پرداخت امکان پذیر نیست.

查询旧支付

$inquiry = new IDPayInquiry();
$response = $inquiry->setApiKey('IDPay API Key')
            ->setSandbox(true)
            ->setID('91cb30a55598f6dbdd0d4d7ad9613d88')
            ->setOrderID('10000')
            ->request();
            
if ($response->is_successful) {
    // handle success here
    
    echo 'Order: ' . $response->order_id;
    echo 'Card Number: ' . $response->payment->card_no;
} else {
    // handle error
}
成功响应
[response_code] => 200
[is_successful] => true
[status] => 100
[track_id] => 46826
[id] => 91cb30a55598f6dbdd0d4d7ad9613d88
[order_id] => 10000
[amount] => 50000
[wage] => stdClass Object
(
    [by] => payee
    [type] => percent
    [amount] => 1000
)
[date] => 1553954369
[payer] => stdClass Object
(
    [name] => Amin
    [phone] => 09353361569
    [mail] => amin@mail.com
    [desc] => Pay for bronze account
)
[payment] => stdClass Object
(
    [track_id] => 59670764
    [amount] => 50000
    [card_no] => 123456******1234
    [date] => 1553954369
)
[verify] => stdClass Object
(
    [date] => 1553954623
)
[settlement] => stdClass Object
(
    [track_id] => 13040079970
    [amount] => 47000
    [date] => 1553984280
)
失败响应
[response_code] => 400
[is_successful] => false
[error_code] => 52
[error_message] => استعلام نتیجه ای نداشت.

贡献者

许可证

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