Авторизация
Подписчики
0
[SW13] UnitPay Скрипт для решения ошибки (Ошибка 400. Не передана подпись запроса)
Описание
PHP скрипт который решит проблему "Ошибка 400. Не передана подпись запроса" которая возникает при использовании этого модуля.
Автор: obius (соседний форум)
/application/donate.php
<?php $secretKey = 'Секретный ключ проекта'; $publicKey = 'Публичный ключ проекта'; $tpl->LoadView( "donate" ); if ( isset( $_POST['act'] ) && $_POST['act'] == 'confirm' ) { function getFormSignature( $account, $currency, $desc, $sum, $secretKey ) { return hash( 'sha256', $account . '{up}' . $currency . '{up}' . $desc . '{up}' . $sum . '{up}' . $secretKey ); } $account = isset( $_POST['account'] ) ? $_POST['account'] : ''; $currency = isset( $_POST['currency'] ) ? $_POST['currency'] : ''; $desc = isset( $_POST['desc'] ) ? $_POST['desc'] : ''; $sum = isset( $_POST['sum'] ) ? $_POST['sum'] : ''; $tpl->Set( 'publicKey', $publicKey ); $tpl->Set( 'account', $account ); $tpl->Set( 'currency', $currency ); $tpl->Set( 'desc', $desc ); $tpl->Set( 'sum', $sum ); $tpl->Set( 'signature', getFormSignature( $account, $currency, $desc, $sum, $secretKey ) ); $tpl->Block( 'prepare', false ); $tpl->Block( 'confirm' ); } else { $tpl->Block( 'prepare' ); $tpl->Block( 'confirm', false ); } $tpl->Build( "content" ); ?>
/templates/default/donate.tpl
[prepare] <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> <script type="text/javascript"> $(function () { function calculateBonuses() { var coinPrice = parseFloat($('#unitpayForm #coinPrice').val()); var coins = parseInt($('#unitpayForm #coins').val()); if (isNaN(coins) || isNaN(coinPrice) || coins <= 0) { $('#unitpayForm #sum').val(''); return; } var price = coins * coinPrice; if (price > 1) { price = 1; } $('#unitpayForm #sum').val(price); } $('#unitpayForm input#coins').keyup(function () { calculateBonuses(); }); calculateBonuses(); $('#unitpayForm').submit(function(){ var sum = parseFloat($('#unitpayForm #sum').val()); if (isNaN(sum) || sum <= 0 || sum > 1) { alert('Неверная сумма платежа'); return false; } }); }); </script> <form id="unitpayForm" action="/donate" method="post"> <input type="hidden" name="act" value="confirm"> <label for="account">Ник персонажа:</label> <input type="text" value="" name="account" required="required" id="account"><br> <label for="coins">Количество монет:</label> <input type="text" id="coins" name="coins" value="1" required="required"><br> <input type="hidden" id="sum" name="sum" value=""> <input type="hidden" name="currency" value="RUB"> <input type="hidden" id="coinPrice" name="coinPrice" value="1"> <input type="hidden" name="desc" value="Покупка внутриигровой валюты"> <input type="submit" class="btn" value="Оплатить"> </form> [/prepare] [confirm] <form id="unitpayForm" action="https://unitpay.money/pay/{publicKey}/card" method="post"> <label for="account">Ник персонажа: {account}</label><br> <label>Пожертвование: {sum} {currency}</label> <input type="hidden" name="account" value="{account}"><br> <input type="hidden" name="currency" value="{currency}"> <input type="hidden" name="sum" value="{sum}"> <input type="hidden" name="desc" value="{desc}"> <input type="hidden" name="signature" value="{signature}"> <input type="submit" class="btn" value="Подтвердить"> </form> [/confirm]
- 3
- 2
Рекомендуемые комментарии
Комментариев нет