|
| |
|
|
| |
для: mihdan
(22.10.2007 в 13:16)
| | | Ну, как обычно :) | |
| |
|
|
| |
|
|
| |
для: ElWhite2
(22.10.2007 в 13:14)
| | | Всё оказалось куда проще, чем предполагалось ! | |
| |
|
|
| |
|
|
| |
для: ElWhite2
(19.10.2007 в 14:42)
| | | Извините за ошибку при форматировании, повторюсь:
Я отправлял в WebMoney число, обработанное через number_format:
$sum = number_format($sum, 2, '.', '');
|
То есть, если сумма была без дробной части, она все равно уходила с двумя нулями в дроби. Этого делать не надо, т.к. не смотря на то, что кипер показывает отправляемую сумму платежа с нулями в пустой дробной части, WebMoney возвращает в квитанции сумму без нулей в дроби если дробной части нет. В результате подпись не будет совпадать с эталонной подписью, т.к. строго говоря отправленное число суммы было одним, а получено - другое. Например, отправлено 23.00, а получено - 23
Потому отправленное число суммы лучше пропускать через round:
$value = round($value, 2);
|
Ну а функцию для обработки исходящей и входящей суммы можно прописать примерно так:
function strictMoney($value)
{
$value = preg_replace('/-/', null, $value);
$value = preg_replace('/,/', '.', $value);
return round($value, 2);
}
|
| |
| |
|
|
| |
|
|
| |
для: mihdan
(20.10.2007 в 20:19)
| | | Да я давно нашел, но причина оказалась не в алгоритме подписи, дело оказалось в формате отправляемой суммы. Может кому пригодится:
Я отправлял в WebMoney число, обработанное через number_format:
$sum = number_format($sum, 2, '.', '');
|
То есть, если сумма была без дробной части, она все равно уходила с двумя нулями в дроби. Этого делать не надо, т.к. не смотря на то, что кипер показывает отправляемую сумму платежа с нулями в пустой дробной части, WebMoney возвращает в квитанции сумму без нулей в дроби если дробной части нет. В результате подпись не будет совпадать с эталонной подписью, т.к. строго говоря отправленное число суммы было одним, а получено - другое. Например, отправлено 23.00, а получено - 23
Потому отправленное число суммы лучше пропускать через round:
$value = round($value, 2);
|
Ну а функцию для обработки исходящей и входящей суммы можно прописать примерно так:
function strictMoney($value)
{
$value = preg_replace('/-/', null, $value);
$value = preg_replace('/,/', '.', $value);
return round($value, 2);
}
|
| |
| |
|
|
| |
|
|
| |
для: kak
(19.10.2007 в 17:11)
| | | Я с вами согласен ... яндекс поможет ;)Я нашел, а вы .... | |
| |
|
|
| |
|
|
| |
для: ElWhite2
(19.10.2007 в 15:50)
| | | >Ощущение такое, что роешься в сундуке с как попало набросанными вещами.
У меня о сайте webmoney.ru такое же впечатление складывается :) | |
| |
|
|
| |
|
|
| |
для: mihdan
(19.10.2007 в 14:48)
| | | На сайте webmoney.ru информация представлена очень скверно . Пока что-то нужное найдешь - уходит слишком много времени. Многие ссылки ведут на удаленные страницы. Ощущение такое, что роешься в сундуке с как попало набросанными вещами.
Я ищу пример реализации построения подписи квитанции для PHP. Вы можете поделиться таким? | |
| |
|
|
| |
|
|
| |
для: ElWhite2
(19.10.2007 в 14:42)
| | | на сайте все расписано от и до, есть примеры(рабочие). В чем именно проблема | |
| |
|
|
| |
|
|
| | Здравствуйте.
Есть вопрос: для PHP алгоритм создания подписи квитанции о проведенной транзакции на https://merchant.webmoney.ru/conf/guide_pci.asp#validation не работает. Может ли кто-нибудь подсказать рабочий алгоритм для PHP?
У меня есть один, но по какой-то причине он работает не устойчиво - примерно каждый третий платеж не проходит в биллинг из-за ошибки в подписи пришедшей квитанции. Хотя проплаты абсолютно честные. | |
| |
|
|
|