Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Підтримка] QIWI REST (для opencart 1.5.x)


waterfall

Recommended Posts

я на днях выложу модуль с измененными именами файлов, чтобы не перетирал имена старого модуля

 

кто сам хочет изменить чтобы работало

в файле catalog/controller/payment/qiwi.php

 

после

        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");

 

добавить

        curl_setopt($ch, CURLOPT_SSLVERSION,3);
 

Надіслати
Поділитися на інших сайтах

залил новую версию

demo http://acevodo.ru/154

на примере покупки iphone можно попробовать :)

есть один глюк, связанный с симпл, если при нажатии оплатить ничего не происходит, перезагрузите страницу (F5) и еще раз попробуйте

Надіслати
Поділитися на інших сайтах

я на днях выложу модуль с измененными именами файлов, чтобы не перетирал имена старого модуля

 

кто сам хочет изменить чтобы работало

в файле catalog/controller/payment/qiwi.php

 

после

        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");

 

добавить

        curl_setopt($ch, CURLOPT_SSLVERSION,3);

 

Спасибо! Внёс изменения. Эффекта нет, всё тот же "Ошибка: Некорректный идентификатор счета" :cry:

Надіслати
Поділитися на інших сайтах


Спасибо! Внёс изменения. Эффекта нет, всё тот же "Ошибка: Некорректный идентификатор счета" :cry:

я сейчас разбираюсь с этим

попробуйте

в том же файле

вместо

        //$this->log->write('qiwi order3 ' . ' ' . print_r($decoded->response, true));

сделать

        $this->log->write('qiwi_rest order  ' . ' ' . print_r($decoded->response, true));

 

проведите платеж и посмотрите в логах, что написано.

у одного человека было, что ошибка авторизации, т.е. неправильная пара логин/пароль (с моими логином/паролем у него заработало)

Надіслати
Поділитися на інших сайтах

Хорошо, попробую по сообщению выше все протестировать.

По ошибке получен официальный ответ, может тогда сможете пофиксить ошибку.

 

Судя по ошибке вы некорректно выставляете счет до вызова данного запроса. Пример корректного кода на php, который выставляет счет и формирует ссылку для переадресации.

<?

//Идентификатор магазина из вкладки "Данные магазина"
$SHOP_ID = "";
//REST ID из вкладки "Данные магазина"
$REST_ID = "";
//REST пароль из вкладки "Данные магазина"
$PWD = ""; 
//ID 
$BILL_ID = "99111-ABCD";
$PHONE = "79197230638";

$data = array(
    "user" => "tel:+" . $PHONE,
    "amount" => "10.00",
    "ccy" => "RUB",
    "comment" => "test",
    "lifetime" => "2013-12-25T09:00:00",
    "pay_source" => "qw",
    "prv_name" => "123"
);

$ch = curl_init('https://w.qiwi.com/api/v2/prv/'.$SHOP_ID.'/bills/'.$BILL_ID);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $REST_ID.":".$PWD);
curl_setopt($ch,CURLOPT_HTTPHEADER,array (
    "Accept: application/json"
));
$results = curl_exec ($ch) or die(curl_error($ch));
echo $results; 
echo curl_error($ch); 
curl_close ($ch);

// в линке ниже заменить Домен.РУ на ваш домен.
$url = 'https://w.qiwi.com/order/external/main.action?shop='.$SHOP_ID.'&transaction='.$BILL_ID.'&successUrl=http%3A%2F%2FДомен.РУ%2Findex.php%3Froute%3Dpayment%2Fqiwi%2Fsuccess&failUrl=http%3A%2F%2Домен.РУ%2Findex.php%3Froute%3Dpayment%2Fqiwi%2Ffail&qiwi_phone='.$PHONE;

echo '<br><br><b><a href="'.$url.'">Переадресация для оплаты счета:</a></b>';

?>
Надіслати
Поділитися на інших сайтах


Вам ответили - это хорошо:)  я писал два раза - тишина:)

поля параметров, я заменю у себя как у вас в примере (у меня и так работает, но лучше как у них:))

Надіслати
Поділитися на інших сайтах

А можно добавить иконку для данного метода оплаты а то как то выбивается из общего вида, или просто ткните где ее добавить.

Bezimeni1j_1321533_9728673.jpg

дайте адрес Вашего сайта:)

Надіслати
Поділитися на інших сайтах

Вам ответили - это хорошо :)  я писал два раза - тишина :)

поля параметров, я заменю у себя как у вас в примере (у меня и так работает, но лучше как у них :))

Простите, вы бы не могли обновить сам модуль или прикрепить измененный файл контроллера (изменения по ответу от тех. поддержки)? Сейчас в модуле стоит версия от нояб. 12 2013 08:21

 

 

А можно добавить иконку для данного метода оплаты а то как то выбивается из общего вида, или просто ткните где ее добавить.

Bezimeni1j_1321533_9728673.jpg

Да, такое можно сделать, но это делается стилями, а не конкретными модулями для оплаты. Если хотите, могу вам это реализовать. Ссылка

Надіслати
Поділитися на інших сайтах


отключил 1.8 версию, стала работать оплата!)

Вопрос, как убрать плюс из поля телефон, тк при оформлении если указать номер с плюсом, то на последнем шаге(подтверждение) он в поле с плюсом попадает, получается ++.

Вот как именно из формы(например регэкспом) отрубить плюс?

 

Разобрался сам, удалил плюсы в qiwi_rest.tpl

$(document).ready(function(){
$("#payment").click(function(event){
$.ajax({
type: 'POST',
url: 'index.php?route=payment/qiwi_rest/confirm',
data: 'qiwi_phone=' + encodeURIComponent('' + $('input[name=\'qiwi_rest_phone\']').val()) + '&qiwi_com=' +  encodeURIComponent('<?php echo $com; ?>'), 
success: function () {
 
$('input[name=qiwi_phone]').val( '' + $('input[name=qiwi_rest_phone]').val() );
    $('#payments').submit();
}
 
});
 
return false;
});
Надіслати
Поділитися на інших сайтах

В письме когда приходит клиенту информация о его заказе нет иконки Qiwi, вместо него неправильный путь к картинке, http://image/payment/qiwi.jpg

В админке при просмотре заказа - Платежи, так же нет картинки http://chipcom.info/admin/image/payment/qiwi.jpg

Второе фигня конечно, но лучше сделать чтоб картинка бралась из одного места.

Надіслати
Поділитися на інших сайтах


В письме когда приходит клиенту информация о его заказе нет иконки Qiwi, вместо него неправильный путь к картинке, http://image/payment/qiwi.jpg

В админке при просмотре заказа - Платежи, так же нет картинки http://chipcom.info/admin/image/payment/qiwi.jpg

Второе фигня конечно, но лучше сделать чтоб картинка бралась из одного места.

Там путь относительный, поэтому такая лажа

Поправлю, спасибо

  • +1 1
Надіслати
Поділитися на інших сайтах

Пришлось полностью отключить этот модуль из-за постоянной "Ошибка: Некорректный идентификатор счета" на пару недель - чтобы дождаться исправления ошибок. :cry:

 

И ещё оставались вопросы по данным - правильно ли брать эти данные по магазину (указаны стрелками)?

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

 

Тем, кто обновляет модуль - обратите внимание, что в папке Модули надо включить соседний (!) новый модуль QIWI Кошелек (REST),  как и поменять настройку в системе Киви.

 

(скрин удален чтобы не было путаницы)

Надіслати
Поділитися на інших сайтах


Матерюсь, сильно матерюсь.

 

Меня waterfall спросил, откуда вообще этот скрин сверху. Отвечаю: https://ishop.qiwi.com/ (Сюда не ходи! Туда ходи ©)

Обратите внимание на домен .com

 

А ещё есть другой путь (почти похожий): https://ishop.qiwi.ru

1ks0T.png

 

Так вот, у меня данные только от .com и по ним нифига не работает. У кого тоже не работает - сначала проверьте откуда вы свои данные берете.

Системе КИВИ сделала похоже две системы, и одна не в курсе, что делается в другой.

 

waterfall, cпасибо вам за хорошую тех. поддержку и терпение наших вопросов.

Надіслати
Поділитися на інших сайтах


Матерюсь, сильно матерюсь.

 

Меня waterfall спросил, откуда вообще этот скрин сверху. Отвечаю: https://ishop.qiwi.com/ (Сюда не ходи! Туда ходи ©)

Обратите внимание на домен .com

 

А ещё есть другой путь (почти похожий): https://ishop.qiwi.ru

1ks0T.png

 

Так вот, у меня данные только от .com и по ним нифига не работает. У кого тоже не работает - сначала проверьте откуда вы свои данные берете.

Системе КИВИ сделала похоже две системы, и одна не в курсе, что делается в другой.

 

waterfall, cпасибо вам за хорошую тех. поддержку и терпение наших вопросов.

Да у киви есть два адреса com и ru но это не случайно. По этому поводу я связывался с менеджером киви. В результате могу сообщить: Адрес ru сделан для пользователей которые получают средства на личный кошелек зарегистрированный на физическое лицо. Если же вы работаете как ИП (а легальные интернет-магазины обычно так и работают), то средства будут выводиться в дальнейшем на расчетный счет и для этого необходимо заключение договора и вам выделяют персонального менеджера (в этом случае ваш личный кабинет и все настройки будут на домене com). Когда вы регистрируетесь по адресу  https://ishop.qiwi.ru/register.action то там вы выбираете из двух пунктов: прием платежей (это как раз для ИП) и именной кошелек (это для физ. лиц).   Так что теперь вопрос для кого сделан этот модуль для физ. лиц или для юр. лиц и ИП? Считаю что это нужно было указать автору с самого начала.

  • +1 1
Надіслати
Поділитися на інших сайтах


Протокол универсален, модуль тоже

Протокол то универсален, а вот ошибка аунтефикации не уходит.

 

Обратите на эти строки (из предыдущего официального ответа Киви):

//Идентификатор магазина из вкладки "Данные магазина"

$SHOP_ID = "";

//REST ID из вкладки "Данные магазина"

$REST_ID = "";

//REST пароль из вкладки "Данные магазина"

$PWD = "";

 

Тут три переменных, а в вашем модуле только два - идентификатор магазина + пароль.

 

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

 

Накидал скрин для заполнения данных между системой Киви и модулем.

1kuli.png

 

Плюс ловите свежий ответ от тех. поддержки, который всё ставит на свои места. Я немного раскрасил переменные, чтобы было понятнее.

 

Если вы зарегистрированы на ishop.qiwi.com, то все запросы и вся работа должна идти через ishop.qiwi.com. ishopnew.qiwi.ru постепенно готовится к закрытию. Если  Ваш разработчик использует интеграцию через REST протокол, то в личном кабинете необходимо сгенерировать REST_ID и для него создаться пароль.

Пример корректного кода выставления счета на PHP: 

<?

//Идентификатор магазина из вкладки "Данные магазина"
$SHOP_ID = "";
//REST ID из вкладки "Данные магазина"
$REST_ID = "";
//REST пароль из вкладки "Данные магазина"
$PWD = "";
//ID
$BILL_ID = "99111-ABCD";
$PHONE = "79197230638";

$data = array(
    "user" => "tel:+" . $PHONE,
    "amount" => "10.00",
    "ccy" => "RUB",
    "comment" => "test",
    "lifetime" => "2013-12-25T09:00:00",
    "pay_source" => "qw",
    "prv_name" => "123"
);

$ch = curl_init('https://w.qiwi.com/api/v2/prv/'.$SHOP_ID.'/bills/'.$BILL_ID);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $REST_ID.":".$PWD);
curl_setopt($ch,CURLOPT_
HTTPHEADER,array (
    "Accept: application/json"
));
$results = curl_exec ($ch) or die(curl_error($ch));
echo $results;
echo curl_error($ch);
curl_close ($ch);

$url =
'https://w.qiwi.com/order/external/main.action?shop='.$SHOP_ID.'&transaction='.$BILL_ID.'&successUrl=http%3A%2F%2FСайт.ru%2Findex.php%3Froute%3Dpayment%2Fqiwi%2Fsuccess&failUrl=http%3A%2F%2FСайт.ru%2Findex.php%3Froute%3Dpayment%2Fqiwi%2Ffail&qiwi_phone='.$PHONE;

echo '<br><br><b><a href="'.$url.'">Переадресация для оплаты счета:</a></b>';

?>
Надіслати
Поділитися на інших сайтах


Давайте я изменю под тот интерфейс:)

но дело не в этом:)

скажите у Вас работает пример, что Вы приводите выше с Вашими данными?

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.