Страница 2 из 2

Re: Как сделать платеж ВКОНТАКТЕ

СообщениеДобавлено: 07 сен 2013, 20:42
newArray
Да какой врапер. просто беседа продолжалась в той теме. Я не знаю как тебе уже понятней объяснить. Я ж сказал это кусок кода для веб страницы.

Re: Как сделать платеж ВКОНТАКТЕ

СообщениеДобавлено: 08 сен 2015, 09:02
Ixilon
А подскажите, в каком месте PHP скрипта впихнуть запись данных в БД.

Так проканает?

Синтаксис:
Используется javascript
case 'order_status_change_test':
      // Изменение статуса заказа в тестовом режиме
      if ($input['status'] == 'chargeable') {
        $order_id = intval($input['order_id']);
               
                $item_id = $input['item_id'];
               
                switch($item_id) {
        case "125":
        // здесь что-то происходит

        break;
        case "127":
        // здесь что-то происходит

        break;
        }
               


$app_order_id = 1; // Тут фактического заказа может не быть - тестовый режим.

.....
.....
 



И где базу данных инициировать подскажите плиз, а то боюсь в скобках запутаться.

Re: Как сделать платеж ВКОНТАКТЕ

СообщениеДобавлено: 08 сен 2015, 15:23
ikhtd
В принципе проканает. Главное угадать какой товар писать - через переменную подставить.

я базу данных инициализирую в скрипте платежа естественно сверху

Код: Выделить всё
<?php
header("Content-Type: application/json; encoding=utf-8");

$secret_key = 'Lhefhleijvje;vjBZ'; // Защищенный ключ приложения

$input = $_POST;


//Connecting to database

$connect = mysql_connect("localhost", "ctgjjgjz", "ngg.gk.g.gg.");

if(!$connect){

die(mysql_error());

}


//Selecting database

$select_db = mysql_select_db("cdgjhdhgz", $connect);

if(!$select_db){

die(mysql_error());

}


$ids = $input['user_id'];


$result = mysql_query("SELECT * FROM partickon WHERE idkon ='$ids'");

   $row = mysql_fetch_array($result);

   $myrank = $row['rank'];

...

// Проверка подписи
$sig = $input['sig'];
unset($input['sig']);
ksort($input);
$str = '';
foreach ($input as $k => $v) {
  $str .= $k.'='.$v;
}

if ($sig != md5($str.$secret_key)) {
  $response['error'] = array(
    'error_code' => 10,
    'error_msg' => 'notnot',
    'critical' => true
  );
} else {

...

и т. д.



конечно правильный алгоритм был бы принять колбек в джава скрипт- там где колбеки

Синтаксис:
Используется javascript
function onOrderSuccess()
{
   document.getElementById('unityPlayer').style.visibility = 'visible';
   u.getUnity().SendMessage("vkAPI", "receivecallbackFromVK", "success");
}


function onOrderFail()
{
   document.getElementById('unityPlayer').style.visibility = 'visible';
   u.getUnity().SendMessage("vkAPI", "receivecallbackFromVK", "fail");  

}

function onOrderCancel()
{
   document.getElementById('unityPlayer').style.visibility = 'visible';
   u.getUnity().SendMessage("vkAPI", "receivecallbackFromVK", "cancel");  

}

 


Потом видно что стринг отправляетя назад в юнити - в зависимости от результата. и вот тогда в юнити уже запусттить еще один php скрипт- который в зависимости от результата колбека запишет или нет в базу.
Мне кажется такой алгоритм был бы правильный. Потому что скрипт платежа там где кейс, какой результат возвращает- процес покупки или отмены покупки?

Ну а так по дурному можно въебать в изменение заказа такую строчку потом

Код: Выделить всё
case 'order_status_change':
// Изменение статуса заказа
      if ($input['status'] == 'chargeable') {
        $order_id = intval($input['order_id']);

$result = mysql_query ("UPDATE partickon SET rank= 'Col' WHERE idkon ='$ids'");  //my correction


Re: Как сделать платеж ВКОНТАКТЕ

СообщениеДобавлено: 10 сен 2015, 18:28
Ixilon
конечно правильный алгоритм был бы принять колбек в джава скрипт- там где колбеки

а это не будет угрозой безопасности?
а если приложение выключено/выбило/в фоновом режиме/улетело на луну?

Re: Как сделать платеж ВКОНТАКТЕ

СообщениеДобавлено: 11 сен 2015, 05:49
newArray
Теоретически будет. Практически мало кому придет в голову в момент платежа отрубать прилу. Вопрос с багом платежа у одного человека можно решить- если он обратиться

а изменение статуса заказа не выполняется когда например игрок захотел сделать покупку - а потом отказался? или еще что то подобное. что там вобще в изменении статуса - я не помню. а например если согласился платить- но у него на счету нет голосов и его посылают пополнить голоса.

Re: Как сделать платеж ВКОНТАКТЕ

СообщениеДобавлено: 12 сен 2015, 01:29
Ixilon
А можно передавать в функцию юнити несколько параметров?

Например HTML:
u.getUnity().SendMessage("vkAPI", "receivecallbackFromVK", "success", x, y);

и С#:
public void Shoping(string param, int x, int y)

Re: Как сделать платеж ВКОНТАКТЕ

СообщениеДобавлено: 12 сен 2015, 03:14
DbIMok
Ixilon писал(а):А можно передавать в функцию юнити несколько параметров?

http://docs.unity3d.com/ru/current/Manu ... ation.html
Строка, float или целое число должно быть передано при использовании SendMessage(), этот параметр является обязательным.

передавайте строку. если нужно много значений используйте что-то типа JSON.stringify(data.error, null, 4); и в Unity разбирайте JSON

Re: Как сделать платеж ВКОНТАКТЕ

СообщениеДобавлено: 12 сен 2015, 04:00
gnoblin
нене, начисление золота только в платежном пхп скрипте вк - по клиентскому колбеку не надо))

Re: Как сделать платеж ВКОНТАКТЕ

СообщениеДобавлено: 12 ноя 2015, 18:47
netghost55
gnoblin писал(а):нене, начисление золота только в платежном пхп скрипте вк - по клиентскому колбеку не надо))


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