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

При генерации урла добавляет "\"


Recommended Posts

Захотела я поставить себе кнопочку быстрого заказа, с яндекс маркета, пол дня угробила, кнопка заработала заказ оформляется, все работает но вместо редиректа на index.php?route=checkout/success, я попадаю на http://mysite.ru/checkout/ с такой вот фигней в браузере: {"status":"success","redirect":"http:\/\/antistress-tomsk.ru\/index.php?route=checkout\/success"}. Как такой финт победить, помогите пожалуйста, не знаю что для решения нужно, предоставлю все все, что попросите. Если не туда написала не ругайтесь, я тут новенькая еще не разобралась, просто нежно пните в нужную сторону).

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


нежно пинаю в сторону вашего .htaccess, в котором вы, возможно, перемудрили с ЧПУ и переадресацией некоторых адресов.

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

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

Дело не в .htaccess это точно, потому что при заполнение полей в ручную все работает отлично, такая вот фигня только после возврата с быстрого заказа яндекс.

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

Я зарегистрировала для возврата http://mysite.ru/checkout/ поставила кнопку в checkout.tpl код отданый яндексом, все работает на ура, заказ оформляется, ошибок в журналах нет, но почему-то не дает страничку с успешным заказом.

Я не уверена но мне кажется этот редирект формируется джавой в checkout.tpl, а для мну джава это совсем дремучий лес, пхп то еще как то так, а джаааваааа) помогите пожалуйста.

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


Путем долгого рытья инета пришла к выводу, что добавление "\", дело функции "json_encode" как исправить, не знаю, спасайте пожалуйста, почему он их добавляет, узнать бы хоть причину, может кто знает, а я пока ушла с головой в познание неизведанной функции json_encode.

Мои мысли: работает данная функция только с utf-8, может ли это быть причиной ошибки кодировки, и могла ли как то измениться кодировка из-за возврата с яндекс маркета?

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


Да стоит seopro и форма укороченного заказа.

И еще в catalog/controler/checkount.php пришлось сделать исправление

if(isset($_POST['phone']))

$data['telephone'] = $this->request->post['phone'];

else

$data['telephone'] = $this->request->post['telephone'];

так как яндекс передает свои переменные, которые не совпадают с opencart

Так же пришлось поступить с адресом, но это ведь не могло повлиять, или....

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


В таблице этой записи нет, я ее добавляла виде checkout/succesы; success но толку нет просто выдает

{"status":"success","redirect":"http:\/\/antistress-tomsk.ru\/success"}А при заполнение полей в ручную все работает прекрасно

Кнопочку добавляла сама, но там нужно код кнопки брать на яндексе каждому персонально хотя это просто, проблема только в том что переменные у яндекса и у опенкар-а разные исправляла как писала выше выше через проверку переменной. адрес у яндекса передается весь разбитый на улицу, дом, квартиру, корпус, все отдельно, придется складывать, но этим пока не занималась сейчас хочу корявый редирект победить)

кстати когда например телефон проверку не проходит, он тоже всякую чушь пишет(

Я так поняла что когда возвращаемся с быстрого запуска что то ломается в этой записи

$json["status"] = "success";

$json["redirect"] = $this->url->link('checkout/success');

$this->response->setOutput(json_encode($json));

А конкретно json_encode($json) а можно ли как то совсем от нее избавиться?

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

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


В таблице этой записи нет, я ее добавляла виде checkout/succesы; success но толку нет просто выдает

{"status":"success","redirect":"http:\/\/antistress-tomsk.ru\/success"}

хорошо, а какой код это выдает?

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

Если номер телефона не проходит валидацию пишет вот так:

{"errors":{"telephone":"\u041d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043e\u0442 3 \u0434\u043e 32 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432!"}}

Я так поняла так выглядит массив переменной $json если его выводить командой echo, то есть вместо редиректа он просто выводит массив в браузер

Урл страницы выглядит так: test.ru/checkout/

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


Появилось предположение что веной всему отсутствие клика, который нужен для работы джавы в checkout.tpl, ну в ней я вообще ничего не смыслю, поэтому возможно это полная глупость)

Кто понимает в джаве помогите у меня скоро мозг сломается

вот сам код

$('#button-confirm').live('click', function() {

$.ajax({

url: 'index.php?route=checkout/checkout',

type: 'post',

data: $('#checkout_form').serialize(),

dataType: 'json',

beforeSend: function() {

$('#button-confirm').attr('disabled', true);

$('#button-confirm').after('<span class="wait"> <img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>');

},

complete: function() {

$('#button-confirm').attr('disabled', false);

$('.wait').remove();

},

success: function(json) {

$('.warning').remove();

$('.error').remove();

if (json['redirect']) {

location = json['redirect'];

}

if (json.errors) {

for (var key in json.errors) {

$('#checkout .checkout-content input[name=\'' + key + '\']').

after('<span class="error" >' + json.errors[key] + '</span>');

}

} else {

if (json.result = "success") {

location.url = json.redirect;

}

}

}

});

});

$('input[name=shipping_method]').live('click', function() {

$.ajax({

url: 'index.php?route=checkout/checkout/change_shipping',

type: 'post',

data: 'shipping_method='+$("input[name=shipping_method]:checked").val(),

dataType: 'json',

success: function(json) {

$('#total_data').html(json['totals_data']);

}

})

});

//--></script>

click - это щелчок мыши, но при возвращение с регистрации яндекса клика нет, это может быть причиной? если да как это победить?

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


вобщем на 3 день мозг вскипел и местами надломлен, избавилась варварским методом:

function redirect($url,$time=0)

{

ob_start();

ob_end_clean();

header("Refresh:".$time."; ".$url);

}

if(isset($_POST['phone'])){

redirect("http://test.ru/success");}

Но очень хочется красивого решения вопроса)

Если нужно помогу с вставкой кнопочки, хотя не уверена что у мну вставлено грамотно, но по крайне мере работает)

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


$json["status"] = "success";

$json["redirect"] = $this->url->link('checkout/success');

$this->response->setOutput(json_encode($json));

return;

я так думаю что присваиватся статус и урл создается вот здесь checkout.php строки 329-332

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


да какие вопросы? - annyta пытается GET`om/POST`om ходить на "ajax-only" форму.

тут надо дублировать один/несколько методов в checkout и давать яндексу другую ссылку.

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

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

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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