07.05.2016, 13:43
|
Новичок на форуме
|
|
Регистрация: 07.05.2016
Сообщений: 4
|
|
Конвертер валют
Ребята. Всем здравствуйте. Только начинаю свой путь Web.
Пожалуйста помогите дилетанту, очень нужно.
Есть вот такой скрипт:
<script>
var valuta=findCookie('valuta');
if(valuta=='USD'){document.getElementById('pr1').i nnerHTML ='<span class="old_price">50.90 USD</span>69.90 USD';};
if(valuta=='CAD'){document.getElementById('pr1').i nnerHTML ='<span class="old_price">65.90 CAD</span>64.90 CAD';};
</script>
который выводит цену на продукцию в нужной валюте. Отображение цены меняется переключателем.Он отдельно и рабочий.
Задача что бы цена валют была, на данный момент USD, не константой, а изменялась, по курсу относительно CAD(Канадского доллара).
CAD, основная валюта. Понимаю что цену нужно умножить на курс, но как реализовать получение курса, вообще непонятно.
Помогите пожалуйста.
|
|
07.05.2016, 14:34
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Курс валют должен получать сервер и один раз в сутки, ибо вам нужна не динамика курса, а текущий курс. Курсы валют предоставляет Центробанк, а клиент использует готовое, ранее полученное и сохраненное.
|
|
07.05.2016, 15:28
|
Новичок на форуме
|
|
Регистрация: 07.05.2016
Сообщений: 4
|
|
Спасибо большое за ответ.Мне нужна цена на товар ,которая будет рассчитываться по курсу, который может меняться один раз в сутки. Как это реализовать, чем и куда загружать его. То есть люди в разных странах смогут переключать цену и видеть товар в нужной им валюте, но мне нужно что бы она была по курсу, а не просто статичное число.
Как это сделать ума не приложу.Ибо не силен в Java.
Помогите чем можете)
|
|
07.05.2016, 16:02
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Курс валют понятие относительное и устанавливается банком по окончании торгов на валютной бирже. То есть курс в России и курс в Канаде, это разные курсы. Но если вы торгуете в России, то пользоваться вы будете курсом установленным ЦБ РФ, и не важно кто будет у вас покупать, канадец, китаец или русский.
ЦБ РФ предоставляет курсы валют для пользователей в двух сервисах, один из них, это получение xml-документа, из которого можно получить курс нужной валюты. Другой сервис более удобен, это SOAP.
Запрашивать курс валюты постоянно с клиента, это не выгодно. Обычно получение курса валют, это серверный скрипт, который запускается по расписанию планировщиком задач cron, и по их получению сохраняет их в базе. Все серверные скрипты эти полученные курсы в дальнейшем и используют, естественно предоставляя их и для клиента.
Товар в базе может быть оценен по базовой валюте, а пользователь может выбрать отображение цен в той валюте, которая ему необходима. При этом не требуется постоянного перерасчета цен (если только это не с целю сравнения, как сервис на клиенте).
Вот такой в общем подход. Зачем вам на клиенте получать курсы, заниматься конвертированием, не понятно.
|
|
07.05.2016, 16:29
|
Новичок на форуме
|
|
Регистрация: 07.05.2016
Сообщений: 4
|
|
Торговать будем по Европе.
Как мне представлялось курс Евро допустим по отношению к Канадскому доллару будет везде одинаковым.
У меня проблема в реализации поставленной цели.
Пусть это будет на сервере. Мне главное простота решения и что бы работало. Чем мне легче будет это сделать.
Просто хочется понять, что искать, куда копать. Не понимая не в JS, не в PHP. Должен разобраться и понять. А главное сделать.
Полезным было "cron".
Подскажите ещё что используется и если можно цепочку что откуда идет, и главное чем.
Заранее огромное спасибо.
|
|
07.05.2016, 17:05
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Наверное сначала посетить сайт ЦБ, найти то что нужно, а затем....
А сервисы ЦБ РФ, о которых я говорил находятся по этим адресам:
http://www.cbr.ru/scripts/Root.asp?PrtId=SXML
http://www.cbr.ru/scripts/Root.asp?PrtId=DWS
Давать готовый какой-то скрипт, не зная организации... Ну пожалуйста, получение курсов с SOAP:
if($client = new SoapClient("http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?wsdl")) {
//курс валют за предыдущий день
$curs = $client->GetCursOnDate(["On_date"=>date('Y-m-d', strtotime('now -1 day'))]);
$rate = new SimpleXMLElement($curs->GetCursOnDateResult->any);
//курс доллара
$result = $rate->xpath('ValuteData/ValuteCursOnDate[VchCode="USD"]');
$usd = (float)$result[0]->Vcurs/(int)$result[0]->Vnom;
//курс канадского доллара
$result = $rate->xpath('ValuteData/ValuteCursOnDate[VchCode="CAD"]');
$cad = (float)$result[0]->Vcurs/(int)$result[0]->Vnom;
//полученные курсы $usd и $cad сохранить в базу
}
Этот РНР сценарий поместить на сервер и указать его планировщику задач. Как указать запуск сценария планировщиком читать на своем хосте.
|
|
07.05.2016, 17:13
|
Новичок на форуме
|
|
Регистрация: 07.05.2016
Сообщений: 4
|
|
Спасибо тебе огромное.
Буду сейчас разбираться. Надеюсь получится.
|
|
|
|