Pull to refresh

Comments 48

> floatval нужен, чтобы привести значения типа «99.00» к «99»

Наоборот. ;)
Нет, нет, я не ошибся.

Зачастую в базе денежные величины хранятся в виде DECIMAL(N,2) (в случае MySQL)

Из базы они приходят, соответственно, как строка «99.00».
При арифметических операциях это роли не играет, тип автоматически будет приведен к float.

А вот при конкатенации строк, одна из которых такое «число», в результирующую строку попадет как раз «99.00», а не ожидаемое Робокассой «99». И хэш уже будет неверным.

Так что все правильно.
При склеивании строк конечно же будут учитываться нули, ибо строка. :)

При floatval() строка переводится в число с плавающей точкой, а при склеивании со строкой PHP приводит её к числу. То же самое: ((int)'99.00').'+'.

Но суть-то не в том. Вы написали, что floatval() нужен для обрезания точки и значений после. Это не так, floatval() нужен для обратного.

А чего вы хотите делает intval() или просто (int)$переменная.

Вот такие пироги. :)
>>При склеивании строк конечно же будут учитываться нули, ибо строка. :)

Несомненно.

>>При floatval() строка переводится в число с плавающей точкой
И с этим не спорю.

>>Вы написали, что floatval() нужен для обрезания точки и значений после
Да, в случае нулевой дробной части числа. А точнее — для обрезания незначащих нулей.

>>А чего вы хотите делает intval() или просто (int)$переменная.
Неверно. Точнее — неприменимо. Сумма может быть дробной.

Пример:
«из базы» — «то, что ожидает Робокасса»
«99.00» -> «99»
«99.90» -> «99.9»
«99.99» -> «99.99»
>>При склеивании строк конечно же будут учитываться нули, ибо строка. :)

Несомненно.

>>При floatval() строка переводится в число с плавающей точкой
И с этим не спорю.

>>Вы написали, что floatval() нужен для обрезания точки и значений после
Да, в случае нулевой дробной части числа. А точнее — для обрезания незначащих нулей.

>>А чего вы хотите делает intval() или просто (int)$переменная.
Неверно. Точнее — неприменимо. Сумма может быть дробной.

Пример:
«из базы» — «то, что ожидает Робокасса»
«99.00» -> «99»
«99.90» -> «99.9»
«99.99» -> «99.99»
Не-не-не, я же не спорю о конкретике — о скрипте и данных им получаемых. :)

Лишь заметил, что фраз «floatval нужен, чтобы привести значения типа „99.00“ к „99“» некорректна. Потому что floatval('99.00') === 99.0.
Вот как раз и нет. Все корректно, я просто сократил фразу.

floatval('99.00') даст нам что? Правильно — число 99 типа float
Но при приведении к строковому типу оно преобразуется именно в «99», что и нужно.

А без floatval и без промежуточного преобразования типа во float мы бы получили «99.0», что неверно в контексте задачи.

Так что «использовать функцию floatval для обрезания незначащих нулей при последующем приведении к строке» — вполне документированная и нужная вещь.

Надеюсь, что я Вас убедил.
Мы по-разному понимаем фразу. Долго я шёл к понимаю этого несложного факта. Пардон за кучку комментариев. :)

> Надеюсь, что я Вас убедил.

Язык намёков мне понятен. Молчу. :)
Я подозреваю, что для Руби есть много универсальных плагинов.

Но все-таки пользоваться ими, не зная внутреннего устройства для меня лично было бы некомфортно.
ни кто не мешает посмотреть что внутри.
это всеравно, что говрить: я не буду ставить в машину кондей, потому что не знаю как он устроен, я лучше сам туда вентилятор вкорячу :)
Нет, не все равно.

Если бы я был автомехаником, грош мне цена, если бы я не знал устройства автомобильного кондиционера.
Если я автовладелец — мне пофигу на устройство кондиционера.

Если я программист, пользоваться готовыми решениями и не понимать как они работают — моветон.
Если Вам пофигу на устройство чужого кода — это странно для программиста.
Вы пользуетесь робокассой, но не знаете внутреннего их устройства и кода.
Отчасти знаю, потому что работаю в финансовой сфере.
Остальную часть — хочу узнать. Когда-нибудь.
То есть мне не пофигу. Мне это интересно.

Вы же ничего не хотите. Напомню, что в свое время стремление «скачать по быстрому компонент и кинуть на форму» погубило Delphi (впрочем, и хрен-то с ним).

Имхо.
> Отчасти знаю, потому что работаю в финансовой сфере.
По вашему получается, что Бух. тоже от части знает, интереное дело :)

>Остальную часть — хочу узнать. Когда-нибудь.
>То есть мне не пофигу. Мне это интересно.
А кто говорил про пофигу и нет?

>Вы же ничего не хотите.
Ну этого я нигде не говорил.

Я про то, что вот так говорить о том, что я не знаю и не буду этим пользоваться — это не праивльно.
Если же конечно вы не цените свое время и готовы на написание такого же функциона потратить хх часов времени вместо х на использование готового, то конечно же это ваш выбор :)

Лан поговорила и хватит, а то еще подумаете, что я тут самый умный и на вас наезжаю, я так просто, мимо проходил :)
Побуду капитаном: автор комментария выше имел в виду, что тут есть код для руби и ссылку можно добавить в пост. :)
Я не люблю Руби. Извините.
Но с кодом ознакомился, возможно будет полезно.
Настолько, что запостили готовый код для работы с сервисом, но на рубиновый код ссылку не дадите? Злодей вы. :)
Так дали же уже в комментах ссылку? Зачем второй-то раз?
Потому что переросло в холивар.
Да перестаньте. Какой тут холивар…
Миниатюрный, но горячий. :)
А на существование POST-параметры значит проверять не надо (isset)? ;-)
Вы намекаете на E_WARNING?

Надо конечно. Но если я код привожу в иллюстративных целях — то не обязательно.
Обязательно. Этот топик читают люди, копирующие код, не заглядывая внутрь, как стало понятно выше.
Про неебическую комиссию лучше напишите :)
А то за почти 2 года после установки робокассы как одного из способов оплаты наших услуг, ей воспользовались не больше десятка клиентов на какие-то мизерные суммы…
Можно более развернуто о комиссии?
разве с покупателя в робокассе берется комиссия?

Покупатель может оплатить покупку без комиссии следующими способами:

* Webmoney (WMR, WMZ)
* Яндекс.Деньги
* Moneymail
* Единый кошелек
* WebCreds
* PayExpress
* ВКонтакте

Также без комиссии можно оплатить в терминалах QIWI и банковскими картами.
THNX. как раз это хотел запостить ))
Это если договор на юр лицо оформлен, а если на физическое то там прием средств производиться на основании оферты обмена валют, и берут комиссию с покупателя, я специально уменьшаю стоимость при выставлении счета что бы покупатель сумму не видел кривую.
У нас за год прошло через Робокассу несколько миллионов рублей.
И комиссия лежала всегда на плечах платящего.
Она, кстати, не неебическая, а 5% (если не брать в учет «оплату через СМС», которой пользуются только альтернативно одаренные).
Так что, возможно, проблема вовсе не в Робокассе, а в тех услугах, которые вы предоставляете.

Кстати, если ваша маржа такова, что вы можете платить комиссию Робокассе за вывод на расчетный счет (те самые 5%) самостоятельно, то для клиентосов «все бесплатно».
Интересует:
1. После оплаты юзером, может ли сервис получить параметры от Робокассы? В идеальном случае: найти в базе данных сайта этого юзера и прописать ему параметр «оплачено». Естественно дергаться должен скрипт лежащий на моем сайте.

2. Возможна ли оплата по подписке, когда через заданный период снимается заданная сумма со счетов (пластика) юзера?

3. Генерируются ли ключи, пароли?
1. Может, у них есть xml интерфейс — можно узнать список валют, курсы обмена и состояние текущего платежа. Примеры есть у них в документации (ссылку автор приводил)

2. По-моему нет, но возможно ошибаюсь.

3. В админке можно указать: пароль 1, пароль2, как считается crc автор написал. НО не написал он о том, что на Success URL и Fail URL передаются те же параметры, что и на Result URL, а crc считается с «пароль 1».

P.S. Вместо этой заметки лучше почитать офф сайт — там намного подробнее (здесь, например, описания как передавать свои параметры) + примеры кода (Perl, ASP — Jscript, ASP.NET).
Ясно. Спасибо. Я думал это робокасса пиарится:)
Автор не упомянул о безопасности, например о том что надо обязательно проверять с какого IP адреса идет запрос на указанные в интерфейсе адреса. А-то накопипастят некоторые горе-кодеры, потом будут кусать локти…
Автор хотел привести минимальный работоспособный код.

А теперь автор начинает задумываться об очередной статье…
Хорошая статья для новичков. Могу добавить только что подключение к др. платежным системам, например RBK-Money происходит аналогично, там тоже есть URL для уведомления о платеже, проверка CRC ключа и т.д.

Такой вопрос, есть интернет-магазин, подключен к робокассе, деньги выводятся на расчетный счет Юр. лица, сам интернет магазин продает услуги, точнее является посредником между продавцом и покупателем, беря свой % за это. То есть покупатель вводит деньги в систему (они через робокассу попадают на р/с фирмы), затем продавец оказывает ему услугу и деньги должны быть переведены ему (либо на пластиковую карточку, либо на электронный кошелек, не суть)

Каким образом организовать вывод средств с расчетного счета магазина на счет продавца? А именно:

1) Можно ли как-то автоматизировать вывод средств, а именно перевод с р/с фирмы др. участникам системы на их банковский счет, либо эл. деньги либо еще как?

2) Юридический аспект, на основании чего переводить деньги с р/с фирмы к продавцу? Можно ли использовать соглашение или договор прямо на сайте, чтобы с каждым индивидуально не подписывать договор?

вы ожидаете здесь бесплатных и точных ответов?
Конечно я не жду готовых решений, меня интересует схема при такой работе, может у кого-то был опыт в этой области.
Добавлю свои 5 копеек, т. к. недавно тоже подключились к Робокассе. Во-первых, вместе с необходимыми параметрами запроса можно также передавать дополнительные собственные параметры, собственно об этом в документации у них на сайте написано. А вот что не описано очевидным образом, так это то, что при подсчете md5 данные поля должны стоять в алфавитном порядке. Т. е. если указаны два параметра shpbbb и shpaaa, в md5 они должны идти: md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1:shpaaa=$shpaaa:shpbbb=$shpbbb");

Второй момент. Если вы подключены как юр. лицо, то доступа к платежам через qiwi не получите сразу. Это как-то тоже не очевидно. Раз в месяц Робокасса отправляет данные по новым мерчантам в Киви, после этого специалисты по безопасности Киви проверят магазин и только после этого подключат и сообщат в Робокассу.
Кстати, а к другим платежным системам кто-нибудь подключался? Мы, например, подключались к ассисту и хронопею и мне интересно, это только у нас только геморроя возникло с ними или у всех так? К ассисту, например, полтора месяца подключались… А в хронопей написьма отвечают через несколько дней…
О QIWI я уже писал.
О Webmoney смысла писать нет — там все наглядно и прозрачно.

Другие были, да, но ничего интересного в процессе подключения не было.
Ок. Я собственно про агрегаторов спрашивал, типа Робокассы. Мы пробовали работать с Assist и Chronopay, морока и волокита. Такое ощущение, что клиенты этим компаниям не нужны…
Прикрутил себе робокассу по этой инструкции — всё работает как часы! Спасибо, очень помогло!
у них написано что они принимают визу и мастеркард, но что то в списках оплаты не увидел таковых, они там есть?
Only those users with full accounts are able to leave comments. Log in, please.