-Inna- 0 Опубликовано 12 февраля, 2012 Жалоба Share Опубликовано 12 февраля, 2012 В общем все развивается как известно. И постоянно возникают новые вопросы. На этот раз задача такая. Магазин работает с казахстанской валютой тенге. (стоит по умолчанию) Но нужно прикрутить оплату с карточек к liqpay. он тенге не знает. значит нужно отправлять ему платежи в долларах. Как проще это сделать что то здесь было про вывод двух валют на сайте. Сделать доллар валютой по умолчанию? и потом как то отсюда прыгать? Спасибо за подробный совет Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 12 февраля, 2012 Жалоба Share Опубликовано 12 февраля, 2012 Ну да, завести любую другую валюту, что поддерживается liqpay, пересчитывать в неё сумму заказа и передавать в liqpay. Ничего сложного, всё решается одной строкой $vamPrice->currEx вроде так. Пример можно посмотреть в том же /includes/modules/payment/liqpay.php или paypal_standard.php Ссылка на сообщение Поделиться на другие сайты
-Inna- 0 Опубликовано 17 февраля, 2012 Автор Жалоба Share Опубликовано 17 февраля, 2012 в 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] просьба посмотреть этот код.дать оценку и как то довести до ума по номеру ордера спасибо Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 18 февраля, 2012 Жалоба Share Опубликовано 18 февраля, 2012 Это liqpay уже пишет про ошибку order id?! Попробуйте так - http://vamshop.ru/forum/topic/10061-%D0%BD%D0%BE%D0%BC%D0%B5%D1%80-%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0-%D0%BA%D0%B0%D0%B6%D0%B4%D1%8B%D0%B9-%D1%80%D0%B0%D0%B7-%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9-%D0%B2-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%85-%D0%BE%D0%BF%D0%BB%D0%B0%D1%82%D1%8B-webmoney/ Ссылка на сообщение Поделиться на другие сайты
-Inna- 0 Опубликовано 18 февраля, 2012 Автор Жалоба Share Опубликовано 18 февраля, 2012 да. это решило ошибку о неуникальности 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) спасибо Ссылка на сообщение Поделиться на другие сайты
-Inna- 0 Опубликовано 18 февраля, 2012 Автор Жалоба Share Опубликовано 18 февраля, 2012 попробывал оплатить карточкой. все сработало успешно. прилетела смс от ликпея. прилетел заказ на почту. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 18 февраля, 2012 Жалоба Share Опубликовано 18 февраля, 2012 Можно обрезать, можно убрать round Код ведь для того и открытый, что б с ним можно было работать и делать так как Вам нужно. get_decimal_places - это количество знаков после запятой из настроек валюты, если я правильно помню. Ссылка на сообщение Поделиться на другие сайты
-Inna- 0 Опубликовано 18 февраля, 2012 Автор Жалоба Share Опубликовано 18 февраля, 2012 get_decimal_places - это количество знаков после запятой из настроек валюты, если я правильно помню. вот вот.не сработало почему то. сделал явно 2 знака после запятой считать и округлять $amount = round($vamPrice->CalculateCurrEx($total, $my_currency), 2); вроде работает Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 18 февраля, 2012 Жалоба Share Опубликовано 18 февраля, 2012 Хорошо, что разобрались. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения