Перейти к содержанию
Форум поддержки пользователей VamShop

опять про liqpay. реализация под новую валюту тенге?


Рекомендуемые сообщения

В общем все развивается как известно.

И постоянно возникают новые вопросы.

На этот раз задача такая. Магазин работает с казахстанской валютой тенге.

(стоит по умолчанию)

Но нужно прикрутить оплату с карточек к liqpay. он тенге не знает.

значит нужно отправлять ему платежи в долларах.

Как проще это сделать

что то здесь было про вывод двух валют на сайте.

Сделать доллар валютой по умолчанию?

и потом как то отсюда прыгать?

Спасибо за подробный совет

Ссылка на сообщение
Поделиться на другие сайты

Ну да, завести любую другую валюту, что поддерживается liqpay, пересчитывать в неё сумму заказа и передавать в liqpay.

Ничего сложного, всё решается одной строкой $vamPrice->currEx вроде так.

Пример можно посмотреть в том же /includes/modules/payment/liqpay.php

или paypal_standard.php

Ссылка на сообщение
Поделиться на другие сайты

в liqpay.php нет этого. посмотрел paypal_standard.php

сделал так добавил в код непосредственно перед $xml = '<?xml version="1.0" encoding="utf-8"?>

(пересчитывает в доллары нормально.хотя по умолчанию стоит тенге. но плохо работает $order_id

похоже не обновляеться номер. если делать покупку ,не доводить платеж до конца вернуться в магазин и пробывать опять купить другой товар то ликпей пишет ошибку Order ID Нарушена уникальность Order id

$total = $order->info['total'] - $order->info['shipping_cost'] - $order->info['tax'];

$my_currency = 'USD';

$amount = round($vamPrice->CalculateCurrEx($total, $my_currency), $vamPrice->get_decimal_places($my_currency));


$xml = '<?xml version="1.0" encoding="utf-8"?>
<request>
<version>1.2</version>
<merchant_id>'.MODULE_PAYMENT_LIQPAY_ID.'</merchant_id>
<result_url>'.vam_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL').'</result_url>
<server_url>'.vam_href_link('liqpay.php', '', 'SSL').'</server_url>
<order_id>'.$order_id.'</order_id>
<amount>'.$amount.'</amount>
<currency>'.$my_currency.'</currency>
<description>'.$order_id.'</description>
<default_phone></default_phone>
<pay_way>card,liqpay</pay_way>
</request>';
[/CODE]

просьба посмотреть этот код.дать оценку и как то довести до ума по номеру ордера

спасибо

Ссылка на сообщение
Поделиться на другие сайты

да. это решило ошибку о неуникальности order id при повторной покупке.

if (isset($_SESSION['cartID'])) {

$insert_order = true;

-------------------------------------------

не постесняюсь спросить можно это здесь обрезать?

$total = $order->info['total'] - $order->info['shipping_cost'] - $order->info['tax'];

до

$total = $order->info['total'] ;

ведь нужна здесь общая сумма заказа.

и еще

round($vamPrice->CalculateCurrEx($total, $my_currency), $vamPrice->get_decimal_places($my_currency));

похоже здесь округляет до целого доллара. а нужно чтобы две цифры после запятой

( в магазине выводит две цифры после запятой в долларах нормально)

наверно так это решить можно? два знака вроде огругляет нормально

$amount = round($vamPrice->CalculateCurrEx($total, $my_currency), 2);

что делает вот этот код?

$vamPrice->get_decimal_places($my_currency)

спасибо

Ссылка на сообщение
Поделиться на другие сайты

попробывал оплатить карточкой.

все сработало успешно.

прилетела смс от ликпея.

прилетел заказ на почту.

Ссылка на сообщение
Поделиться на другие сайты

Можно обрезать, можно убрать round

Код ведь для того и открытый, что б с ним можно было работать и делать так как Вам нужно.

get_decimal_places - это количество знаков после запятой из настроек валюты, если я правильно помню.

Ссылка на сообщение
Поделиться на другие сайты

get_decimal_places - это количество знаков после запятой из настроек валюты, если я правильно помню.

вот вот.не сработало почему то.

сделал явно 2 знака после запятой считать и округлять

$amount = round($vamPrice->CalculateCurrEx($total, $my_currency), 2);

вроде работает

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...