@GIRUPC
Веб-программист

В неверной кодировке принимается ответ из робокассы?

Имеется измененный скрипт от робокассы
<?php
$shp_email= strip_tags($email);
$shp_phone = strip_tags($phone);
$shp_shopitem = strip_tags($shopitem); 
$shp_name = strip_tags($name);
echo $email." ".$phone." ".$name." ".$shopitem;

if ($shp_shopitem == 'Модуль - 1 (Начинающий)') {
    $price = 455; 
    }
elseif ($shp_shopitem == 'Модуль - 2 (Любитель)') {
    $price = 642; 
    }
elseif ($shp_shopitem == 'Модуль - 3 (Продвинутый)') {
    $price = 828; 
    }
else {
    $price = 1851; 
    }  
    
    
//echo $price;
// 2.
// Оплата заданной суммы с выбором валюты на сайте ROBOKASSA
// Payment of the set sum with a choice of currency on site ROBOKASSA

// регистрационная информация (логин, пароль #1)
// registration info (login, password #1)
$mrh_login = "";
$mrh_pass1 = "";

// номер заказа
// number of order
$inv_id = time();

// описание заказа
// order description
$inv_desc = "Оплачен $shp_item";

// сумма заказа
// sum of order
$out_summ =  1;

// тип товара
// code of goods
$shp_item = $shp_shopitem;

// предлагаемая валюта платежа
// default payment e-currency
$in_curr = "BANKOCEAN2R";

//email
$email = $shp_email;
// язык
// language
$culture = "ru";
$OutSumCurrency = "RUR";
// формирование подписи
// generate signature

$crc  = md5(""); 
//echo $crc;
// форма оплаты товара
// payment form
print "<html>".
      "<form action='https://merchant.roboxchange.com/Index.aspx' method=POST>".
      "<input type=hidden name=MerchantLogin value=$mrh_login>".
      "<input type=hidden name=OutSum value=$out_summ>".
      "<input type=hidden name=InvId value=$inv_id>".
      "<input type=hidden name=InvDesc value='$inv_desc'>".
      "<input type=hidden name=SignatureValue value=$crc>".
      "<input type=hidden name=shp_item value='$shp_item'>".
      "<input type=hidden name=IncCurrLabel value=$in_curr>".
      "<input type=hidden name=Culture value=$culture>".
      "<input type=hidden name=shp_name value='$shp_name'>".
      "<input type=hidden name=shp_phone value='$shp_phone'>".
       "<input type=hidden name=email value=$email>".
      "<input type=submit value='Оплатить'>".
      "</form></html>";

Вот данные которые передаю и которые планирую использовать далее.
5a92c2ed05e8c981850561.png Передаются как видно корректно.
Страница result реализована вот так
[[!getPlaceholder]]

[[+shp_item]] <br>
[[+shp_name]] <br>
[[+shp_phone]] <br>

[[!actve?
    &user = `[[+shp_name]]`
    &course = `[[+shp_item]]`
    ]]

[[!FormIt?
   &hooks=`email`
   &emailTpl=`CallbackTpl`
   &emailFrom = `help@chesterchess.ru`
   &emailTo=`amdserver@mail.ru`
   &emailSubject =`Купили товар [[+shp_item]]`
]]


OK[[+InvId]]

Но после оплаты письмо почему то попадает в спам, хотя другие письма с этого ящика приходят нормально. Это раз. Два - приходит сразу 2 одинаковых письма, но не понятно почему. Но допустив ошибку в переменной т.е. вместо [[+shp_item]] я указал shopitem на странице result, то в данном случае приходит одно письмо
и третье самое главное - название курса которое покупает человекприходит в неверной кодировке, но я думаю что дело в кодировке.
5a92c50bead64377466690.png
Подскажите где у меня ошибка, особенно важен 3 вопрос
  • Вопрос задан
  • 204 просмотра
Пригласить эксперта
Ответы на вопрос 3
customtema
@customtema
arint.ru
Да, робокасса на винде (1251). Когда писал плагин для нее, делал перекодировку.

В shp_item может первичный идентификатор товара положить? А выводить и на почту посылать полученное из БД по идентификатору.
Ответ написан
Есть параметр Encoding. Укажите его равным 'utf-8'
Ответ написан
Комментировать
Adamos
@Adamos
Робокасса позволяет вам прилепить к заказу произвольные поля и возвращает их значение.
Какой идиот надоумил вас заполнять эти чисто служебные поля - кириллицей?
Вот он пусть и тренируется в перекодировках - сам сделал грабли, сам наступил...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы