Взагалі до чого все це мені? Я підключаю до сайту платіжну систему. Користувач вводить кількість купується ігрової валюти, на сервері розраховується вартість в доларах, і потім кількість доларів відправляється на сторінку платіжної системи, де користувач проводить оплату згідно з даними, що були відправлені запитом.
Заздалегідь дякую всім за допомогу.
заданий 18 Серпня '14 о 8:18
@ Антон Лакотко Дякую за відповідь, але в тому-то і справа, що я прочитав доки по своїй ПС. І мені не потрібна оплата товару не переходячи на сайт ПС. Мені якраз-таки потрібен перехід на сайт ПС. Просто перед переходом мені потрібно трохи змінити POST-запит. Вся проблема саме в цьому. (- intro94 18 Серпня '14 в 9:49
ПС - Інтеркаса 2.0. Просто в першій версії у них була конвертація валют. Можна було вказати кількість ігрової валюти, в настройках каси вказати курс, за яким вона буде конвертуватися в USD, і на сторінці оплати вже виводилася вартість в USD. Я ж користуюся другою версією (стара ними не підтримується), а вона ще не весь функціонал підтримує. (От мені й доводиться конвертувати ігрову валюту в USD у себе на сервері і на ПС відправляти вже вартість оплати в USD. - intro94 18 Серпня '14 о 10:20
Варіанта точно, як ви хочете - не існує.
Почнемо з кінця: сервер ПС отримує HTTP POST запит від клієнта і віддає йому сторінку у відповідь. Клієнт в цьому випадку - браузер вашого користувача, десктоп з JS або мобільний без JS.
В цей діалог двох сторін ви зі своїм php можете втрутитися тільки як Mim (man in the middle) - тобто підняти проксі і трафік пускати через себе - не пройде через https і сертифікатів ПС.
Або ви повинні повідомити на клієнт заздалегідь ваші змінені дані, і той має право їх як завгодно модифікувати і підробляти, перш ніж відправити в ПС. Теж не варіант.
В цей же час всі робочі сценарії прікруткі ПС ними зазвичай вже продумані, і на кожен є надійні рішення, описані в документації.
Я зрозумів, спасибі. Загалом, по видимому, доведеться чекати, коли ПС зробить у себе конвертацію валюти, а поки що задовольнятися відкритим GET-запитом. (В принципі, якщо добре продумати систему оплати, то навіть при відкритому запиті користувач отримає стільки ігрової валюти, скільки він сплатив в дійсності (навіть якщо підставить свою суму). Уже роблю саме так - остаточне кількість ігрової валюти буде розраховуватися вже після оплати . --- Усім спасибі за допомогу. - intro94 18 Серпня '14 о 10:22
Можна зробити окрему таблицю "Замовлення". Гравець буде формаіровать чергове замовлення - у якого є id, прописано кількість ігрової валюти, статус "оплачено / не сплачено", і вартість в рублях, або USD на момент замовлення. У ПС гравець йде без цифр кількості ігрової валюти - тільки з номером замовлення і вартістю в USD. ПС підтверджує оплату цього id замовлення, і повідомляє, скільки фактично заплатили - безпосередньо вашого сервера, минаючи клієнта. Ви у себе перевіряєте, чи нормальна отримана сума за мінусом комісій, і відзначаєте замовлення як "оплачений" і переводите заказвшему його на рахунок ігрову валюту. - Sergiks 18 Серпня '14 о 10:30
@sergiks спасибі. ) Я зробив таким чином: клієнт робить платіж, я у себе нічого не зберігаю. Сервер отримує від ПС подробиці платежу, в тому числі скільки фактично заплатили, і сервер видає стільки ігрової валюти клієнту, за яку реально було сплачено. По суті у мене дві конвертації. Спочатку ігрову валюту в USD, а потім конвертація після здійснення платежу USD -> ігрова валюта. ) - intro94 24 Серпня '14 о 7:38