2017 © Pedro Peláez
 

yii2-extension interkassa

Extension for integration Interkassa in yii2 project

image

grandmasterx/interkassa

Extension for integration Interkassa in yii2 project

  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 155 % Grown

The README.md

Build Status, (*1)

Yii2 Interkassa

Extension for integration Interkassa in yii2 project. WIP., (*2)

Installation

The preferred way to install this extension is through composer., (*3)

Either run, (*4)

php composer.phar require --prefer-dist grandmasterx/interkassa "*"

or add, (*5)

"grandmasterx/interkassa": "*"

to the require section of your composer.json file., (*6)

Update config file config/web.php, (*7)

return [
    'components' => [
        'interkassa' => [
            'class' => 'grandmasterx\interkassa\Component',
            'co_id' => '', // Cashbox identifier
            'secret_key' => '', // Cashbox secret key
            'test_key' => '', // Cashbox test secret key
            'sign_algo' => 'md5', // Sign algoritm. Allow: md5, sha1
            'api_user_id' => '', // Api user id
            'api_user_key' => '' // Api user secret key
        ],
    ],
]

Usage

Example payment:, (*8)

class InterkassaController extends Controller
{
    public function actions() {
        return [
            'result' => [
                'class' => 'grandmasterx\interkassa\ResultAction',
                'callback' => [$this, 'resultCallback'],
            ],
            'success' => [
                'class' => 'grandmasterx\interkassa\SuccessAction',
                'callback' => [$this, 'successCallback'],
            ],
            'fail' => [
                'class' => 'grandmasterx\interkassa\FailAction',
                'callback' => [$this, 'failCallback'],
            ],
        ];
    }

    public function actionInvoice()
    {
        $model = new Invoice();

        if ($model->load(Yii::$app->request) && $model->save())
        {
            $params = [
                'ik_pm_no' => $model->id,
                'ik_am' => $model->ammount,
                'ik_desc' => 'Site payment',
            ];

            return Yii::$app->interkassa->payment($params);
        }

        return $this->render('invoice', compact($model));
    }

    public function successCallback($ik_am, $ik_inv_st, $ik_pm_no)
    {
        return $this->render('success');
    }

    public function failCallback($ik_am, $ik_inv_st, $ik_pm_no)
    {
        return $this->render('fail');
    }

    public function resultCallback($ik_am, $ik_inv_st, $ik_pm_no)
    {

        switch ($ik_inv_st)
        {
            case 'new':
                $this->loadModel($ik_pm_no)->updateAttributes(['status' => Invoice::STATUS_NEW]);
                break;
            case 'waitAccept':
                $this->loadModel($ik_pm_no)->updateAttributes(['status' => Invoice::STATUS_PENDING]);
                break;
            case 'process':
                $this->loadModel($ik_pm_no)->updateAttributes(['status' => Invoice::STATUS_PROCESS]);
                break;
            case 'success':
                $this->loadModel($ik_pm_no)->updateAttributes(['status' => Invoice::STATUS_SUCCESS]);
                break;
            case 'canceled':
                $this->loadModel($ik_pm_no)->updateAttributes(['status' => Invoice::STATUS_CANCELED]);
                break;
            case 'fail':
                $this->loadModel($ik_pm_no)->updateAttributes(['status' => Invoice::STATUS_FAIL])
                break;
        }
    }

    protected function loadModel($id)
    {
        $model = Invoice::findOne($id);

        if ($model === null)
            throw new BadRequestHttpException;

        return $model;
    }
}

Example withdraw: ```php class Withdraw { protected $purse_name = 'My Purse Name';, (*9)

public function process($id)
{
    $withdraw = Withdraw::findOne($id);

    if ($withdraw === null)
        throw new BadRequestHttpException;

    try {
        $result = Yii::$app->interkassa->withdraw(
            $withdraw->id,
            $this->purse_name,
            $withdraw->payway_name,
            ['purse' => $withdraw->purse],
            $withdraw->amount,
            'psPayeeAmount',
            'process'
        );
    } catch (WithdrawException $e) {
        return $e->getMessage();
    }
}

}, (*10)

The Versions

13/11 2017

dev-master

9999999-dev

Extension for integration Interkassa in yii2 project

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

extension yii2 interkassa

13/11 2017

v1.0.1

1.0.1.0

Extension for integration Interkassa in yii2 project

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

extension yii2 interkassa