Перейти к содержимому


Фотография

[e-invoicing] 2 раза обращается к моему result.php!


  • Пожалуйста, авторизуйтесь для ответа.
9 ответов в данной теме

#1 Пользователь WBO (WMID 341478613851 )

  • Группа: Пользователи
  • сообщений 7
  • Регистрация: 18-марта 13
  • Webmoney BL

Отправлено 02 марта 2015 - 00:29

Здравствуйте.

 

Заметил такую проблему. Уже 2 раза из 10 произошло. 8 раз нормально.

 

Человек платит картой. На моём сайте идёт зачисление денег в БД после платежа, а потом через несколько секунд (в последний раз через 5 секунд) идёт ещё одно зачисление этих же денег!

 

За несколько лет оплаты только через merchant такого глюка не было, но как только подключил приём карт (e-invoicing) стали проскакивать такие ошибки.

 

Мой result.php из статьи - http://owebmoney.ru/merchant.shtml

 

В чём может быть проблема?

 

Я понимаю что она может быть и с моей стороны, например я генерирую случайный номер счёта и потом его не проверяю, но мне это и не нужно так как мне важна сумма прихода которая в $_POST['LMI_PAYMENT_AMOUNT'] и которую я записываю в бд.


    • 0
  • Наверх

#2 Знаток 632584157120 (WMID 632584157120 )

  • Группа: Модераторы
  • сообщений 1 797
  • Регистрация: 29-ноября 09
  • МестоположениеКZ
  • Webmoney BL

Отправлено 02 марта 2015 - 10:16

На самом деле сколько транзакции по истории операции


    • 0
  • Наверх

#3 Пользователь WBO (WMID 341478613851 )

  • Группа: Пользователи
  • сообщений 7
  • Регистрация: 18-марта 13
  • Webmoney BL

Отправлено 02 марта 2015 - 12:07

На самом деле сколько транзакции по истории операции

ну это понятно что раз я заметил, то проверил в истории операций кошелька. но я же не стану всегда сверять историю операций кошелька с историей зачислений в моей бд.

 

почему так может происходить то? чем e-invoicing от обычного мерчанта отличается? зачем он делает иногда 2 обращения к скрипту нотификации уже после оплаты вместо одного?


    • 0
  • Наверх

#4 Пользователь WBO (WMID 341478613851 )

  • Группа: Пользователи
  • сообщений 7
  • Регистрация: 18-марта 13
  • Webmoney BL

Отправлено 02 марта 2015 - 13:59

ну вот опять это случилось. произошло зачисление денег в бд, затем через 12 секунд ещё одно зачисление


    • 0
  • Наверх

#5 Пользователь WBO (WMID 341478613851 )

  • Группа: Пользователи
  • сообщений 7
  • Регистрация: 18-марта 13
  • Webmoney BL

Отправлено 02 марта 2015 - 14:23

подумал как заделать эту дыру. решил что можно сделать дополнительную проверку на то что была ли полностью идентичная вставка в БД ранее. хотел проверять так:

 

если уже есть в БД платёж на такую же $_POST['LMI_PAYMENT_AMOUNT'] (сумма) и с таким же $_POST['LMI_SYS_TRANS_DATE'] (время) то просто не вставлять в БД эту запись, но оно почему то при повторном платеже $_POST['LMI_SYS_TRANS_DATE'] меняет (оно на 5-15 секунд больше). а в бд у меня кроме этих параметров больше ничего не пишется. а вводить дополнительно номер инвойса я не хочу.

 

как сделать не знаю. и знать бы почему так происходит ещё...


    • 0
  • Наверх

#6 Знаток ^-^ (WMID 273407224562 )

  • Группа: Пользователи
  • сообщений 6 059
  • Регистрация: 10-сентября 13
  • Webmoney BL

Отправлено 03 марта 2015 - 00:25

Здравствуйте.

 

А в Вашу БД пишется LMI_SYS_TRANS_NO?

Если да, то проверяйте по нему, и ежели внутренний номер платежа в системе WebMoney Transfer ранее был получен, то не стоит повторно вставлять в БД данные.


Бесплатный SSL на 3 мес. / Сертификат SSL от 299 руб.
    • 0
  • Наверх

#7 Пользователь WBO (WMID 341478613851 )

  • Группа: Пользователи
  • сообщений 7
  • Регистрация: 18-марта 13
  • Webmoney BL

Отправлено 05 марта 2015 - 16:43

LMI_SYS_TRANS_NO уникален??? я при оплате получил число 425 :)


    • 0
  • Наверх

#8 Знаток ^-^ (WMID 273407224562 )

  • Группа: Пользователи
  • сообщений 6 059
  • Регистрация: 10-сентября 13
  • Webmoney BL

Отправлено 06 марта 2015 - 01:18

Именно уникален.

Хм, а какой уникальный номер платежа (стоит отметить, что слово ПЛАТЁЖ является определяющим) Вы хотите получить в тестовом режиме? Тестовый платёж в рабочую базу данных Мерчант ВМ пихать не будет))) Да и не разумно это))) Вы переведите кошелёчек в режим ВКЛ и тогда увидите, что там далеко не трёхзначное число, а... ммм... где-то в 10 знаков число и да, оно уникально :)

 

 

 

Для "поиграться".

В настройках кошелка на сайте Мерчанта в ResultURL укажите e-mail ("mailto : your @ mail . ru" - без пробелов, кавычек и свою почту). Кошелёк1 переведите в ВКЛ.

После возьмите примитив-форму (нажать на первое "Показать") и укажите свои данные: номер кошелька1 (рублёвый, чтоб меньшие суммы гонять), стоимость товара "1" рубль, ну и "Тестовый товар" в описании. После совершите оплату на свой же кошелёк.

На e-mail указанный вместо ResultURL придёт "описулька" со всеми параметрами, в т.ч. и с LMI_SYS_TRANS_NO.

Далее идёте на сайт Мерчанта на эту страницу и ищите платёж по номеру, который пришёл в LMI_SYS_TRANS_NO на мыло.

 

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


Сообщение отредактировал ^-^: 06 марта 2015 - 01:29

Бесплатный SSL на 3 мес. / Сертификат SSL от 299 руб.
    • 0
  • Наверх

#9 Пользователь WBO (WMID 341478613851 )

  • Группа: Пользователи
  • сообщений 7
  • Регистрация: 18-марта 13
  • Webmoney BL

Отправлено 06 марта 2015 - 20:01

Вы правы. Спасибо. И проверку скриптом ранее оплаченного LMI_SYS_TRANS_NO встроил как вы сказали.


    • 0
  • Наверх

#10 Знаток ^-^ (WMID 273407224562 )

  • Группа: Пользователи
  • сообщений 6 059
  • Регистрация: 10-сентября 13
  • Webmoney BL

Отправлено 07 марта 2015 - 23:59

Всегда пожалуйста, обращайтесь :)


Бесплатный SSL на 3 мес. / Сертификат SSL от 299 руб.
    • 0
  • Наверх