Skip to content

Commit

Permalink
update Yandex payment v1.2.7
Browse files Browse the repository at this point in the history
  • Loading branch information
osben committed Jan 15, 2019
1 parent 0b208a5 commit 0dd09fb
Show file tree
Hide file tree
Showing 8 changed files with 276 additions and 84 deletions.
7 changes: 7 additions & 0 deletions payment/YandexFastPay/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
### v1.2.7 от 17.12.2018
* Добавлены поля для ФФД 1.05

### v1.2.3 от 24.01.2018
* Удален метод QP
* Добавлен метод кредитование.

### 28.08.2017
* Обновлён класс определения стоимости позиций в чеке
* Исправлен код формирования чека
Expand Down
25 changes: 13 additions & 12 deletions payment/YandexFastPay/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#yandexmoney-simplacms
# yandex-money-cms-simplacms

Модуль оплаты yandexmoney-simplacms необходим для интеграции с сервисом [Яндекс.Касса](http://kassa.yandex.ru/) на базе CMS SimplaCMS.

Expand All @@ -16,25 +16,26 @@
* **Наличные** - [Более 170 тысяч пунктов](https://money.yandex.ru/pay/doc.xml?id=526209) оплаты по России
* **Баланс телефона** - Билайн, МегаФон и МТС
* **Интернет банкинг** - Альфа-Клик, Сбербанк Онлайн, MasterPass и Промсвязьбанк
* **Кредитование** - Доверительный платеж (Куппи.ру)
* **Кредитование**

###Поддержка передачи данных чека
### Поддержка передачи данных чека
Если вы настраивали отправку чеков в налоговую через партнеров Яндекс.Кассы (по 54-ФЗ), в настройках модуля надо включить отправку данных для чека.
[Помощь Кассы: отправка чеков по 54-ФЗ](https://yandex.ru/support/checkout/payments/tax-sync.html)

###Установка модуля
### Установка модуля
Для установки данного модуля необходимо поместить содержимое каталога `src` из [архива](https://github.com/yandex-money/yandex-money-cms-simplacms/archive/master.zip) в папку `/payment/YandexMoney` с заменой на новые.

Пожалуйста, обязательно делайте бекапы!

###Лицензионный договор.
### Лицензионный договор.
Любое использование Вами программы означает полное и безоговорочное принятие Вами условий лицензионного договора, размещенного по адресу https://money.yandex.ru/doc.xml?id=527132 (далее – «Лицензионный договор»).
Если Вы не принимаете условия Лицензионного договора в полном объёме, Вы не имеете права использовать программу в каких-либо целях.

###Нашли ошибку или у вас есть предложение по улучшению модуля?
Пишите нам [email protected]
При обращении необходимо:
* Указать наименование CMS и компонента магазина, а также их версии
* Указать версию платежного модуля (доступна на странице настроек модуля)
* Описать проблему или предложение
* Приложить снимок экрана (для большей информативности)
### Контакты
Если у вас есть вопросы или идеи для модуля, напишите нам: [email protected]

В письме укажите:
* версию платформы,
* версию модуля (можно посмотреть на странице настроек),
* идею или проблему,
* снимок экрана, о котором говорите.
2 changes: 1 addition & 1 deletion payment/YandexFastPay/settings.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<module>
<name>
Яндекс.Платежка (версия 1.2.3)
Яндекс.Платежка (версия 1.2.7)
</name>
<settings>
<variable>yandex_fast_pay_id</variable>
Expand Down
7 changes: 7 additions & 0 deletions payment/YandexMoney/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
### v1.2.7 от 17.12.2018
* Добавлены поля для ФФД 1.05

### v1.2.3 от 24.01.2018
* Удален метод QP
* Добавлен метод кредитование.

### 28.08.2017
* Обновлён класс определения стоимости позиций в чеке
* Исправлен код формирования чека
Expand Down
25 changes: 13 additions & 12 deletions payment/YandexMoney/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#yandexmoney-simplacms
# yandex-money-cms-simplacms

Модуль оплаты yandexmoney-simplacms необходим для интеграции с сервисом [Яндекс.Касса](http://kassa.yandex.ru/) на базе CMS SimplaCMS.

Expand All @@ -16,25 +16,26 @@
* **Наличные** - [Более 170 тысяч пунктов](https://money.yandex.ru/pay/doc.xml?id=526209) оплаты по России
* **Баланс телефона** - Билайн, МегаФон и МТС
* **Интернет банкинг** - Альфа-Клик, Сбербанк Онлайн, MasterPass и Промсвязьбанк
* **Кредитование** - Доверительный платеж (Куппи.ру)
* **Кредитование**

###Поддержка передачи данных чека
### Поддержка передачи данных чека
Если вы настраивали отправку чеков в налоговую через партнеров Яндекс.Кассы (по 54-ФЗ), в настройках модуля надо включить отправку данных для чека.
[Помощь Кассы: отправка чеков по 54-ФЗ](https://yandex.ru/support/checkout/payments/tax-sync.html)

###Установка модуля
### Установка модуля
Для установки данного модуля необходимо поместить содержимое каталога `src` из [архива](https://github.com/yandex-money/yandex-money-cms-simplacms/archive/master.zip) в папку `/payment/YandexMoney` с заменой на новые.

Пожалуйста, обязательно делайте бекапы!

###Лицензионный договор.
### Лицензионный договор.
Любое использование Вами программы означает полное и безоговорочное принятие Вами условий лицензионного договора, размещенного по адресу https://money.yandex.ru/doc.xml?id=527132 (далее – «Лицензионный договор»).
Если Вы не принимаете условия Лицензионного договора в полном объёме, Вы не имеете права использовать программу в каких-либо целях.

###Нашли ошибку или у вас есть предложение по улучшению модуля?
Пишите нам [email protected]
При обращении необходимо:
* Указать наименование CMS и компонента магазина, а также их версии
* Указать версию платежного модуля (доступна на странице настроек модуля)
* Описать проблему или предложение
* Приложить снимок экрана (для большей информативности)
### Контакты
Если у вас есть вопросы или идеи для модуля, напишите нам: [email protected]

В письме укажите:
* версию платформы,
* версию модуля (можно посмотреть на странице настроек),
* идею или проблему,
* снимок экрана, о котором говорите.
76 changes: 53 additions & 23 deletions payment/YandexMoney/YandexMoney.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php
/**
* Version: 1.2.3
* Version: 1.2.7
* License: Любое использование Вами программы означает полное и безоговорочное принятие Вами условий лицензионного договора, размещенного по адресу https://money.yandex.ru/doc.xml?id=527132 (далее – «Лицензионный договор»). Если Вы не принимаете условия Лицензионного договора в полном объёме, Вы не имеете права использовать программу в каких-либо целях.
*/
require_once('api/Simpla.php');
Expand All @@ -9,21 +9,22 @@ class YandexMoney extends Simpla
{
public function checkout_form($order_id, $button_text = null)
{
if (empty($button_text))
if (empty($button_text)) {
$button_text = 'Перейти к оплате';
}

$order = $this->orders->get_order((int)$order_id);
$order = $this->orders->get_order((int)$order_id);
$payment_method = $this->payment->get_payment_method($order->payment_method_id);
//$payment_currency = $this->money->get_currency(intval($payment_method->currency_id));
$settings = $this->payment->get_payment_settings($payment_method->id);
$price = round($this->money->convert($order->total_price, $payment_method->currency_id, false), 2);
$return_url = $this->config->root_url . '/order/' . $order->url;
$payment_url = ($settings['yandex_testmode']) ? 'demo' : '';
$settings = $this->payment->get_payment_settings($payment_method->id);
$price = round($this->money->convert($order->total_price, $payment_method->currency_id, false), 2);
$return_url = $this->config->root_url.'/order/'.$order->url;
$payment_url = ($settings['yandex_testmode']) ? 'demo' : '';
$payment_sitemode = ($settings['yandex_paymode'] == 'site') ? true : false;
$payment_type = ($payment_sitemode) ? $settings['yandex_paymenttype'] : '';
$payment_type = ($payment_sitemode) ? $settings['yandex_paymenttype'] : '';

if (isset($settings['ya_kassa_send_check']) && $settings['ya_kassa_send_check']) {
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'YandexMoneyReceipt.php';
require_once dirname(__FILE__).DIRECTORY_SEPARATOR.'YandexMoneyReceipt.php';

$purchases = $this->orders->get_purchases(array('order_id' => intval($order->id)));

Expand All @@ -37,34 +38,63 @@ public function checkout_form($order_id, $button_text = null)
$receipt->setCustomerContact($order->email);

foreach ($purchases as $purchase) {
$receipt->addItem($purchase->product_name, $purchase->price, $purchase->amount);
$properties = $this->features->get_product_options($purchase->product_id);
$paymentMode = $this->getPaymenMode($properties, $settings);
$paymentSubject = $this->getPaymenSubject($properties, $settings);
$receipt->addItem($purchase->product_name, $purchase->price, $purchase->amount, $id_tax, $paymentMode,
$paymentSubject);
}

if ($order->delivery_id && $order->delivery_price > 0) {
$delivery = $this->delivery->get_delivery($order->delivery_id);
$receipt->addShipping($delivery->name, $order->delivery_price);
$receipt->addShipping($delivery->name, $order->delivery_price, $id_tax,
$settings['ya_kassa_payment_mode'], $settings['ya_kassa_payment_subject']);
}

$ymMerchantReceipt = $receipt->normalize($price)->getJson();
}


$button = '<form method="POST" action="https://' . $payment_url . 'money.yandex.ru/eshop.xml">
<input type="hidden" name="shopid" value="' . $settings['yandex_shopid'] . '">
<input type="hidden" name="sum" value="' . $price . '">
<input type="hidden" name="scid" value="' . $settings['yandex_scid'] . '">
$button = '<form method="POST" action="https://'.$payment_url.'money.yandex.ru/eshop.xml">
<input type="hidden" name="shopid" value="'.$settings['yandex_shopid'].'">
<input type="hidden" name="sum" value="'.$price.'">
<input type="hidden" name="scid" value="'.$settings['yandex_scid'].'">
<input type="hidden" name="shopSuccessURL" value="' . $return_url . '">
<input type="hidden" name="shopFailURL" value="' . $return_url . '">
<input type="hidden" name="shopSuccessURL" value="'.$return_url.'">
<input type="hidden" name="shopFailURL" value="'.$return_url.'">
<input type="hidden" name="cps_email" value="' . htmlspecialchars($order->email, ENT_QUOTES) . '">
<input type="hidden" name="cps_phone" value="' . htmlspecialchars(preg_replace("/[-+()]/", '', $order->phone), ENT_QUOTES) . '">
' . (isset($settings['ya_kassa_send_check']) && $settings['ya_kassa_send_check'] ? '<input type="hidden" name="ym_merchant_receipt" value=\'' . $ymMerchantReceipt . '\'>' : '') . '
<input type="hidden" name="customerNumber" value="' . $order->id . '">
<input type="hidden" name="paymentType" value="' . $payment_type . '">
<input type="hidden" name="cps_email" value="'.htmlspecialchars($order->email, ENT_QUOTES).'">
<input type="hidden" name="cps_phone" value="'.htmlspecialchars(preg_replace("/[-+()]/", '',
$order->phone), ENT_QUOTES).'">
'.(isset($settings['ya_kassa_send_check']) && $settings['ya_kassa_send_check'] ? '<input type="hidden" name="ym_merchant_receipt" value=\''.$ymMerchantReceipt.'\'>' : '').'
<input type="hidden" name="customerNumber" value="'.$order->id.'">
<input type="hidden" name="paymentType" value="'.$payment_type.'">
<input type="hidden" name="cms_name" value="simplacms"/>
<input type="submit" name="submit-button" value="' . $button_text . '" class="checkout_button">
<input type="submit" name="submit-button" value="'.$button_text.'" class="checkout_button">
</form>';

return $button;
}

private function getPaymenMode($properties, $settings)
{
foreach ($properties as $property) {
if ($property->name == 'paymentMethodType') {
return $property->value;
}
}

return $settings['ya_kassa_payment_mode'];
}

private function getPaymenSubject($properties, $settings)
{
foreach ($properties as $property) {
if ($property->name == 'paymentSubjectType') {
return $property->value;
}
}

return $settings['ya_kassa_payment_subject'];
}
}
Loading

0 comments on commit 0dd09fb

Please sign in to comment.