click/module

该软件包最新版本(dev-master)没有提供许可证信息。

与click集成的库

dev-master 2019-09-17 14:36 UTC

This package is not auto-updated.

Last update: 2024-09-29 06:02:36 UTC


README

此库允许您将使用 "CLICK" 支付系统的支付接受集成到 PHP 网络应用程序中。要使库正常工作,用户必须使用 Shop API 方案连接到 Click 商户。详细的文档在此处可查 https://docs.click.uz

ClickLLC

通过Git安装

git clone https://github.com/click-llc/click-integration-php.git
cd click-integration-php
composer install

安装后,您需要引入自动加载器

require(__DIR__ . '\vendor\autoload.php');

文档

配置

您可以通过 click/configs.php 文件设置配置。

Click配置

return [
    ...
    'provider' => [
        'endpoint' => 'https://api.click.uz/v2/merchant/',
        'click' => [
            'merchant_id' => 1111,
            'service_id' => 2222,
            'user_id' => 3333,
            'secret_key' => 'AAAAAAAA'
        ]
    ]
    ...
]

数据库配置

return [
    ...
    'db' => [
        'dsn' => 'mysql:host=localhost;dbname=<your_db_name>',
        'username' => 'root',
        'password' => ''
    ]
    ...
]

快速开始

1) 创建模型

您可以使用 \cick\models\Payments 模型

use click\models\Payments;
$model = new Payments();

或者可以通过 \click\models\Payments 类自己创建支付模型

use click\models\Payments;
class MyPayments extends Payments{
    ...
}
$model = new MyPayments();

SHOP API 方法

准备

$model->prepare([
    'click_trans_id' => 1111,
    'service_id' => 2222,
    'click_paydoc_id' => 3333,
    'merchant_trans_id' =>  '11111',
    'amount' => 1000.0,
    'action' => 0,
    'error' => 0,
    'error_note' => 'Success',
    'sign_time' => 'YYYY-MM-DD HH:mm:ss',
    'sign_string' => 'AAAAAAAAAAAAAAAAAAAAAAAAAA'
]);

完成

$model->complete([
    'click_trans_id' => 1111,
    'service_id' => 2222,
    'click_paydoc_id' => 3333,
    'merchant_trans_id' =>  '11111',
    'merchant_prepare_id' => 11111,
    'amount' => 1000.0,
    'action' => 1,
    'error' => 0,
    'error_note' => 'Success',
    'sign_time' => 'YYYY-MM-DD HH:mm:ss',
    'sign_string' => 'AAAAAAAAAAAAAAAAAAAAAAAAAA'
]);

商户 API 方法

注意:所有商户 API 方法都返回 CLICK-MERCHANT-API 的数组响应

创建发票

$model->create_invoice([
    'token' => 'aaaa-bbbb-cccc-ddddddd',
    'phone_number' => '998112222222'
]);

检查发票状态

$model->check_invoice([
    'token' => 'aaaa-bbbb-cccc-ddddddd',
    'invoice_id' => 2222
]);

创建卡令牌

$model->create_card_token([
    'token' => 'aaaa-bbbb-cccc-ddddddd',
    'card_number' => 'AAAA-BBBB-CCCC-DDDD',
    'expire_date' => 'BBEE',
    'temporary' => 1
]);

验证卡令牌

$model->verify_card_token([
    'token' => 'aaaa-bbbb-cccc-ddddddd',
    'sms_code' => '12345'
]);

使用卡令牌进行支付

$model->payment_with_card_token([
    'token' => 'aaaa-bbbb-cccc-ddddddd',
    'card_token' => 'AAAAAA-BBBB-CCCC-DDDDDDD'
]);

删除卡令牌

$model->delete_card_token([
    'token' => 'aaaa-bbbb-cccc-ddddddd',
    'card_token' => 'AAAAAA-BBBB-CCCC-DDDDDDD'
]);

通过 payment_id 检查支付状态

$model->check_payment([
    'token' => 'aaaa-bbbb-cccc-ddddddd',
    'payment_id' => 1111
]);

通过 merchant_trans_id 检查支付状态

$model->merchant_trans_id([
    'token' => 'aaaa-bbbb-cccc-ddddddd',
    'merchant_trans_id' => 1111
]);

取消支付(撤销)

$model->cancel([
    'token' => 'aaaa-bbbb-cccc-dddddddd',
    'payment_id' => 1111
]);

2) 重写 Payments 的某些方法

use click\models\Payments;
class MyPayments extends Payments{
    /**
     * @param data array
     * @return response \GuzzleHttp\Client
     */
    public function on_invoice_creating($data){
        ...
        $response = $this->client->request('POST', 'invoice/create', [
            ...
        ]);
        ...
        return $response;
    }
    /**
     * @param request array
     * @param response \GuzzleHttp\Client object
     * @param token string
     * @return response array|null
     */
    public function on_invoice_created($request, $response, $token){
        ...
        if($response->getStatusCode() == 200){
            $result = (array)json_decode((string) $response->getBody());
            ...
            $this->model->update_by_token($token, [
                ...
            ]);
            ...
        }
        ...
        return $result;
    }
}

Payments 方法列表

  1. on_invoice_creatingon_invoice_created 用于创建发票
  2. on_invoice_checkingon_invoice_checked 用于检查发票
  3. on_cancelingon_canceled 用于取消支付
  4. on_card_token_creatingon_card_token_created 用于创建卡令牌
  5. on_card_token_verifyingon_card_token_verified 用于验证卡令牌
  6. on_card_token_payingon_card_token_payed 用于通过卡令牌支付
  7. on_card_token_deletingon_card_token_deleted 用于删除卡令牌
  8. on_payment_checkingon_payment_checked 用于通过商户_id 检查支付状态
  9. on_checking_with_merchant_trans_idon_checked_with_merchant_trans_id 用于通过商户_trans_id 检查支付状态

如果您想检查支付用户是否存在,请完成此方法

use click\models\Payments;
class MyPayments extends Payments{
    /**
     * @name on_user_is_exists method
     * @param payment array
     * @return response boolean|null
     */
    protected function on_user_is_exists($payment){
        ...
    }
}

高级

1) 创建用于REST API的应用程序

use click\applications\Application;
use click\models\Payments;

$model = new Payments();
$application = new Application([
    'model' => $model
]);

2) 创建带有应用程序会话的应用程序以通过令牌进行授权

use click\applications\Application;
use click\models\Payments;

Application::session('<YOUR_AUTH_TOKEN>', ['/prepare', '/complete'], function(){
    $model = new Payments();
    $application = new Application([
        'model' => $model
    ]);
    $application->run();
});

SHOP API 方法

  1. /prepare 用于准备
  2. /complete 用于完成

商户 API 方法

  1. /invoice/create 用于创建发票
  2. /invoice/check 用于检查发票
  3. /payment/status 用于通过支付_id 检查支付状态
  4. /payment/merchant_train_id 用于通过商户_trans_id 检查支付状态
  5. /cancel 用于取消支付
  6. /card/create 用于创建卡令牌
  7. /card/verify 用于验证卡令牌
  8. /card/payment 用于使用卡令牌支付
  9. /card/delete 用于删除卡令牌