2017 © Pedro PelΓ‘ez
 

library omnipay-paymentgateru

Paymentgate.ru support for Omnipay payment processing library

image

pinguinjkeke/omnipay-paymentgateru

Paymentgate.ru support for Omnipay payment processing library

  • Monday, April 23, 2018
  • by pinguinjkeke
  • Repository
  • 1 Watchers
  • 4 Stars
  • 147 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 10 Versions
  • 30 % Grown

The README.md

Omnipay: PaymentgateRu (Alfabank)

PaymentgateRu (ΠΠ»ΡŒΡ„Π°Π±Π°Π½ΠΊ) Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Omnipay PHP, (*1)

Build Status Latest Stable Version Total Downloads, (*2)

Omnipay - это нСзависимая ΠΎΡ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для PHP 5.3+, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π°Ρ Ρ€Π°Π±ΠΎΡ‚Ρƒ с нСсколькими шлюзами., (*3)

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ добавляСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ для ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½ΠΎΠ³ΠΎ шлюза ΠΠ»ΡŒΡ„Π°Π±Π°Π½ΠΊΠ° paymentgate.ru., (*4)

Установка

Π›ΡƒΡ‡ΡˆΠΈΠΉ способ - установка Ρ‡Π΅Ρ€Π΅Π· Composer. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ваш composer.json:, (*5)

composer require "pinguinjkeke/omnipay-paymentgateru"

Для PHP 5.3 - 7.0 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ вСрсии 2.*, (*6)

ЗапуститС composer для обновлСния:, (*7)

$ curl -s http://getcomposer.org/installer | php
$ php composer.phar update

ΠŸΡ€ΠΎΡΡ‚ΠΎΠ΅ использованиС

ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с основной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Omnipay., (*8)

Π’ этой сСкции Π±ΡƒΠ΄ΡƒΡ‚ описаны ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠ΅ кСйсы для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ (списаниС ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ срСдств). Π‘ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² REST API шлюза Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ознакомится Π² src/Message., (*9)

// Авторизация ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ°
$response = Gateway::authorize([
    'orderNumber' => $orderUuidOrNumber, // Уникальная строка Π·Π°ΠΊΠ°Π·Π°
    'amount' => $price * 100, // Π¦Π΅Π½Π° Π² ΠΊΠΎΠΏΠ΅ΠΉΠΊΠ°Ρ…
    'currency' => 810, // Π’Π°Π»ΡŽΡ‚Π° (ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ€ΡƒΠ±Π»ΡŒ)
    'description' => 'КакоС-Π»ΠΈΠ±ΠΎ описаниС Π·Π°ΠΊΠ°Π·Π°', // Π‘Ρ‚Ρ€ΠΎΠΊΠ° с описаниСм Π·Π°ΠΊΠ°Π·Π°
    'returnUrl' => 'http://yoursite.com/payment/success', // URL ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΎΠΏΠ»Π°Ρ‚Ρ‹
    'failUrl' => 'http://yoursite.com/payment/failure', // URL ΠΏΡ€ΠΎΠ²Π°Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΠ»Π°Ρ‚Ρ‹
    'clientId' => 123 // ID ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для привязки ΠΊΠ°Ρ€Ρ‚Ρ‹)
])
    ->setUserName('merchant_login')
    ->setPassword('merchant_password')
    ->send();

// Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ id Π·Π°ΠΊΠ°Π·Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ присвоил Π±Π°Π½ΠΊ
$bankOrderId = $response->getTransactionId();

// УспСшно Π»ΠΈ всС ΠΏΡ€ΠΎΡˆΠ»ΠΎ?
$success = $response->isSuccess();

// Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ срСдств
$response = Gateway::refund([
    'orderId' => $bankOrderId, // Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π·Π°ΠΊΠ°Π·Π° Π½Π° сторонС Π±Π°Π½ΠΊΠ°
    'amount' => $price * 100 // Π¦Π΅Π½Π° Π² ΠΊΠΎΠΏΠ΅ΠΉΠΊΠ°Ρ…
])
    ->setUserName('merchant_login')
    ->setPassword('merchant_password')
    ->send();

$success = $response->isSuccess();

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ Π€Π—-54

ΠŸΠ°ΠΊΠ΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ послСдниС имзСнСния ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΎΠ½Π»Π°ΠΉΠ½-кассами ΠΏΠΎ Π€Π—-54., (*10)

Класс Π·Π°ΠΊΠ°Π·Π° Π² вашСй систСмС Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ интСрфСйс Omnipay\PaymentgateRu\OrderBundle\OrderInterface, (*11)

class Order extends EloquentModel implements OrderInterface
{
    // Π”ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ массив Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… OrderItemInterface
    public function getItems(): iterable
    {
        return $this->cart;
    }

    // Π”ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ CustomerInterface
    public function getCustomer(): ?string
    {
        return $this->customer;
    }

    public function getCreationDate(): int
    {
        return $order->created_at->getTimestamp();
    }
}

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ доставки, Π·Π°ΠΊΠ°Π· Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ интСрфСйс Omnipay\PaymentgateRu\OrderBundle\OrderDeliverableInterface., (*12)

class Order extends EloquentModel implements OrderInterface, OrderDeliverableInterface
{
    // НаимСнованиС способа доставки ΠΈΠ»ΠΈ null
    public function getDeliveryType(): ?string
    {
        $this->delivery->name;
    }

    // Π”Π²ΡƒΡ…ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ страны доставки RU, EN
    public function getCountry(): ?string
    {
        return $this->delivery->country;
    }

    // Π“ΠΎΡ€ΠΎΠ΄ доставки
    public function getCity(): ?string
    {
        return $this->delivery->city;
    }

    // АдрСс доставки
    public function getPostAddress(): ?string
    {
        return $this->delivery->address;
    }
}

ΠœΠ΅Ρ‚ΠΎΠ΄ Π·Π°ΠΊΠ°Π·Π° getCustomer() Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ null, Ссли Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠ»ΠΈ Omnipay\PaymentgateRu\OrderBundle\CustomerInterface., (*13)

class User extends EloquentModel implements CustomerInterface
{
    public function getEmail(): ?string
    {
        return $this->email;
    }

    public function getPhone(): ?string
    {
        return preg_replace('/\D/', '', $this->phone);
    }

    // ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ связи с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ
    public function getContact(): ?string
    {
        return "Fax: {$this->user->fax}";
    }
}

Π’ΠΎΠ²Π°Ρ€ Π² ΠΊΠΎΡ€Π·ΠΈΠ½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ интСрфСйс OrderItemInterface., (*14)

class CartProduct extends EloquentModel implements OrderItemInterface
{
    // НазваниС Ρ‚ΠΎΠ²Π°Ρ€Π°
    public function getName(): string
    {
        return $this->name;
    }

    // Артикул Ρ‚ΠΎΠ²Π°Ρ€Π°
    public function getCode()
    {
        return $this->product->article;
    }

    // Π•Π΄ΠΈΠ½ΠΈΡ†Ρ‹ измСрСния
    public function getMeasure(): string
    {
        return 'ΡˆΡ‚.';
    }

    // ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π°
    public function getQuantity(): float
    {
        return $this->quantity;
    }

    // Π¦Π΅Π½Π° Π½Π° ΠΎΠ΄ΠΈΠ½ Ρ‚ΠΎΠ²Π°Ρ€
    public function getPrice(): float
    {
        return $this->product->price;
    }

    // Π’Π°Π»ΡŽΡ‚Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ISO-4217
    // По ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ Π±Π°Π½ΠΊΠ°, всС Ρ‚ΠΎΠ²Π°Ρ€Ρ‹, ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΠ΄Π½ΠΎΠΌ Π·Π°ΠΊΠ°Π·Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ Π²Π°Π»ΡŽΡ‚Π΅!
    public function getCurrency(): string
    {
        return $this->product->currency;
    }

    // Π¦Π΅Π½Π° Π½Π° Ρ‚ΠΎΠ²Π°Ρ€ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ количСства
    public function getAmount(): float
    {
        return $this->getPrice() * $this->getQuantity();
    }

    // Если Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… свойств, ΠΈΠ½Π°Ρ‡Π΅ - null
    public function getDetailParams(): array
    {
        return [
            'color' => $this->product->color,
            'size' = $this->product->size
        ];
    }

    // percent - скидка Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°Ρ…, value - фиксированная скидка, null - Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ
    public function getDiscountType(): ?string
    {
        return 'percent';
    }

    // Π Π°Π·ΠΌΠ΅Ρ€ скидки
    public function getDiscountValue(): float
    {
        return $this->getPrice() * 0.1;
    }
}

Если Π² Ρ€Π°ΠΌΠΊΠ°Ρ… вашСй систСмы Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ использованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… систСм налогооблоТСния для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² , Ρ‚ΠΎ взглянитС Π½Π° интСрфСйс OrderItemTaxableInterface., (*15)

К ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°ΠΊΠ°Π·Π° Π² Π±Π°Π½ΠΊΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Omnipay\PaymentgateRu\OrderBundle\OrderBundle ΠΈ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° конструктора ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ваш Π·Π°ΠΊΠ°Π· OrderInterface, (*16)

$orderBundle = new OrderBundle(
    $orderRepository->find($orderId)
);

$response = Gateway::authorize([
    'orderNumber' => $orderUuidOrNumber, // Уникальная строка Π·Π°ΠΊΠ°Π·Π°
    'amount' => $price * 100, // Π¦Π΅Π½Π° Π² ΠΊΠΎΠΏΠ΅ΠΉΠΊΠ°Ρ…
    'currency' => 810, // Π’Π°Π»ΡŽΡ‚Π° (ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ€ΡƒΠ±Π»ΡŒ)
    'description' => 'КакоС-Π»ΠΈΠ±ΠΎ описаниС Π·Π°ΠΊΠ°Π·Π°', // Π‘Ρ‚Ρ€ΠΎΠΊΠ° с описаниСм Π·Π°ΠΊΠ°Π·Π°
    'returnUrl' => 'http://yoursite.com/payment/success', // URL ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΎΠΏΠ»Π°Ρ‚Ρ‹
    'failUrl' => 'http://yoursite.com/payment/failure', // URL ΠΏΡ€ΠΎΠ²Π°Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΠ»Π°Ρ‚Ρ‹
    'clientId' => 123 // ID ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для привязки ΠΊΠ°Ρ€Ρ‚Ρ‹)
    'taxSystem
])
    ->setUserName('merchant_login')
    ->setPassword('merchant_password')
    ->setTaxSystem(Gateway::TAX_SYSTEM_COMMON) // Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ систСму налогооблоТСния
    ->setOrderBundle($orderBundle)  // НСобходимо ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ OrderBundle ΠΊ Π·Π°ΠΊΠ°Π·Ρƒ
    ->send();

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ°

Π― ΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ обновлСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ pyamentgate., (*17)

Если Π²Ρ‹ нашли ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ я с Ρ€Π°Π΄ΠΎΡΡ‚ΡŒΡŽ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΡŽ issue ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΌΡƒ pull request., (*18)

The Versions

23/04 2018

dev-master

9999999-dev https://github.com/pinguinjkeke/omnipay-paymentgateru

Paymentgate.ru support for Omnipay payment processing library

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alexander Avakov

payment pay gateway merchant purchase omnipay soap paymentgate alphabank paymentgateru

23/04 2018

3.0.1

3.0.1.0 https://github.com/pinguinjkeke/omnipay-paymentgateru

Paymentgate.ru support for Omnipay payment processing library

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alexander Avakov

payment pay gateway merchant purchase omnipay soap paymentgate alphabank paymentgateru

26/03 2018

3.0.0

3.0.0.0 https://github.com/pinguinjkeke/omnipay-paymentgateru

Paymentgate.ru support for Omnipay payment processing library

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alexander Avakov

payment pay gateway merchant purchase omnipay soap paymentgate alphabank paymentgateru

22/01 2018

2.1.1

2.1.1.0 https://github.com/pinguinjkeke/omnipay-paymentgateru

Paymentgate.ru support for Omnipay payment processing library

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alexander Avakov

payment pay gateway merchant purchase omnipay soap paymentgate alphabank paymentgateru

21/07 2017

2.0.1

2.0.1.0 https://github.com/pinguinjkeke/omnipay-paymentgateru

Paymentgate.ru support for Omnipay payment processing library

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alexander Avakov

payment pay gateway merchant purchase omnipay soap paymentgate alphabank paymentgateru

18/07 2017

2.0.0

2.0.0.0 https://github.com/pinguinjkeke/omnipay-paymentgateru

Paymentgate.ru support for Omnipay payment processing library

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alexander Avakov

payment pay gateway merchant purchase omnipay soap paymentgate alphabank paymentgateru

13/06 2017

1.0.4

1.0.4.0 https://github.com/pinguinjkeke/omnipay-paymentgateru

Paymentgate.ru support for Omnipay payment processing library

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alexander Avakov

payment pay gateway merchant purchase omnipay soap paymentgate alphabank paymentgateru

13/06 2017

1.0.3

1.0.3.0 https://github.com/pinguinjkeke/omnipay-paymentgateru

Paymentgate.ru support for Omnipay payment processing library

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alexander Avakov

payment pay gateway merchant purchase omnipay soap paymentgate alphabank paymentgateru

11/03 2017

1.0.2

1.0.2.0 https://github.com/pinguinjkeke/omnipay-paymentgateru

Paymentgate.ru support for Omnipay payment processing library

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alexander Avakov

payment pay gateway merchant purchase omnipay soap paymentgate alphabank paymentgateru

04/10 2016

1.0.0

1.0.0.0 https://github.com/pinguinjkeke/omnipay-paymentgateru

Paymentgate.ru support for Omnipay payment processing library

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alexander Avakov

payment pay gateway merchant purchase omnipay soap paymentgate alphabank paymentgateru