PHP code example of pinguinjkeke / omnipay-paymentgateru
1. Go to this page and download the library: Download pinguinjkeke/omnipay-paymentgateru library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
pinguinjkeke / omnipay-paymentgateru example snippets
// Авторизация платежа
$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();
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();
}
}
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;
}
}
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}";
}
}
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;
}
}
$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();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.