meverikxp

Рейтинг
73
Регистрация
03.06.2012
bukachuk:
$Plugin = new Robokassa('robokassa');

$Plugin->Success2($out_summ, $uid, $inv_id);


Вставьте в Success перед echo OK

Спасибо! Но echo OK нет в Success URL или этот код в двох кодах вставлять?

нашел два скрипта помогите разобратся

Result URL:

<?php


define( '_JEXEC', 1 );

define('DS', DIRECTORY_SEPARATOR);
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../../..' ));

require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' );

$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

require_once( JPATH_BASE .DS.'components'.DS.'com_billing'.DS.'useraccount.php' );
require_once( JPATH_BASE .DS.'components'.DS.'com_billing'.DS.'account.php' );

BillingLogMessage('Billing Plugin', 'Robokassa', "Result URL processing...");

$db =& JFactory::getDBO();
$query = "select * from `#__billing_settings` where paysystem='robokassa'";
$result = $db->setQuery($query);
$row = $db->loadAssoc();

$mrh_pass2 = $row['pass2'];
$out_summ = $_REQUEST["OutSum"];
$inv_id = $_REQUEST["InvId"];
$uid = $_REQUEST["SHPuid"];
$crc = $_REQUEST["SignatureValue"];
$crc = strtoupper($crc);
$my_crc = strtoupper(md5("$out_summ:$inv_id:$mrh_pass2:SHPuid=$uid"));

if ($my_crc == $crc)
{
BillingLogMessage('Billing Plugin', 'Robokassa', "Success: $inv_id");
echo 'OK'.$inv_id . "\n";
}
else
{ BillingLogMessage('Billing Plugin', 'Robokassa', "Fail: $crc != $my_crc");
echo 'fail';
}

?>

Success URL:


<?php

define( '_JEXEC', 1 );

define('DS', DIRECTORY_SEPARATOR);
define('JPATH_BASE', substr(__FILE__,0,strrpos(__FILE__, DS."components")));
require_once( JPATH_BASE .DS.'includes'.DS.'defines.php' );
require_once( JPATH_BASE .DS.'includes'.DS.'framework.php' );


$mainframe =& JFactory::getApplication('site');
$mainframe->initialise();

include_once (JPATH_BASE . '/components/com_billing/useraccount.php');
include_once (JPATH_BASE . '/components/com_billing/account.php');
require_once( JPATH_BASE .DS.'components'.DS.'com_billing'.DS.'plugin.php' );
require_once( JPATH_BASE .DS.'components'.DS.'com_billing'.DS.'plugins'.DS.'robokassa'.DS.'robokassa.php' );

BillingLogMessage('Billing Plugin', 'Robokassa', "Start...");

$db =& JFactory::getDBO();
$query = "select * from `#__billing_settings` where paysystem='robokassa'";
$result = $db->setQuery($query);
$row = $db->loadAssoc();

$mrh_pass1 = $row['pass1'];
$out_summ = $_REQUEST["OutSum"];
$inv_id = $_REQUEST["InvId"];
$pid = $inv_id;
$crc = $_REQUEST["SignatureValue"];
$uid = $_REQUEST["SHPuid"];
$crc = strtoupper($crc);
$my_crc = strtoupper(md5("$out_summ:$inv_id:$mrh_pass1:SHPuid=$uid"));

if ($my_crc != $crc)
{
BillingLogMessage('Billing Plugin', 'Robokassa', "Invalid signature $my_crc != $crc");
return false;
}

BillingLogMessage('Billing Plugin', 'Robokassa', "Making payment for order $pid...");
$Plugin = new Robokassa('robokassa');
$Plugin->Success2($out_summ, $uid, $pid);

?>

подскажите пожалуйста что исправить? Очень прошу ))

bukachuk:
Компонент наверное, а именно момент подтверждение платежа Success URL который, а не Result URL, скорее всего зачисление идет по Result - это не правильно

Нашел вот такой кусок кода:

Class Robokassa extends BillingPlugin 

{
function Robokassa($pname)
{
BillingPlugin::BillingPlugin($pname);
if ($this->res_url == '')
{
$this->res_url = JURI::base() . "components/com_billing/plugins/$pname/result.php";
$this->res_url = str_replace('administrator/', '', $this->res_url);
}
if ($this->success_url == '')
{
$this->success_url = JURI::base() . "components/com_billing/plugins/$pname/result2.php";
$this->success_url = str_replace('administrator/', '', $this->success_url);
}
if ($this->fail_url == '')
{
$this->fail_url = JURI::base() . "index.php?option=com_billing&task=fail&pid=$this->id";
$this->fail_url = str_replace('administrator/', '', $this->fail_url);
}
}

его нужно править, я просто с платежными системами еще не работал, там что прошу не пинать ))

---------- Добавлено 24.01.2013 в 02:54 ----------

если нужно я сброшу всю архивку компонента, помогите разобраться пожалуйста. ))

Chukcha:
С помощью аналогичного регулярного выражения получайте src
и сохраняйте...

Ну это я понял. я так скачаю картинки, а как изменить ссылки на картинки?

Решилось довольно интересным способом, заменил все jQuery на $, и все стало работать

big boy:
1. Модуль similar by term либо другой подобный.
2. При редактировании товара должны быть соответствующие поля (если я вас правильно понял).
3. Модуль hierarchial select либо через модуль views.

Для 1 и 3 пунктов скорее всего придется редактировать шаблоны для достижения желаемого результата. Копайте в сторону темизации тем для друпала.

вы можете рассказать подробнее как правильно настроить модуль similar by term и как редактируются шаблоны модулей, здесь есть такое понятие как перенаправление шаблона или нужно редактировать шаблон прям в модуле

Разбераю друпал, в этой ЦМС полный чайник, но хорошо знаю Джумлу, ДЛЕ, Котонти, так что при ответе на вопросы можете делать аналогию (если знаете эти ЦМС). И так есть интернет магазин на друпале. Мне нужно несколько вещей:

1) В карточке товара сделать вывод товаров из тот же колекции что открыт товар с пролистыванием.

2) Убрать в карточке старая цена

3) Как сделать отбор в колекции по типу

Подскажите как это можно реализовать и как более подробно. Не пинайте за незнания. Если в каком то пункте нужен программинг говорите, но направьте что и какой (хоть где искать) файл который править.

PS. PHP знаю хорошо так что если нет готового решения говорите что нужно делать.

izbushka:
Смотрите заголовки и текст возвращаемой страницы, возможно там есть ответ.


Это выглядит немного подозрительно :) Хотя, конечно, все может быть.

Сейчас уже выкидает

Извините, страница временно недоступна, что делаю не так? куда копать?

Апокалипсис:
Телепаты в отпуске.
http://phpfaq.ru/debug

Готов уточнить вопрос скажите что еще нужно?

нашел функцию которая обрабатывает мой селект


function replaceSelects() {
for(var q = 0; q < selects.length; q++) {
if (!selects[q].replaced && selects[q].offsetWidth)
{
selects[q]._number = q;
//create and build div structure
var selectArea = document.createElement("div");
var left = document.createElement("span");
left.className = "left";
selectArea.appendChild(left);

var disabled = document.createElement("span");
disabled.className = "disabled";
selectArea.appendChild(disabled);

selects[q]._disabled = disabled;
var center = document.createElement("span");
var button = document.createElement("a");
var text = document.createTextNode(selectText);
center.id = "mySelectText"+q;

var stWidth = selects[q].offsetWidth;
selectArea.style.width = stWidth + "px";
if (selects[q].parentNode.className.indexOf("type2") != -1){
button.href = "javascript:showOptions("+q+",true)";
} else {
button.href = "javascript:showOptions("+q+",false)";
}
button.className = "selectButton";
selectArea.className = "selectArea";

selectArea.className += " " + selects[q].className;
selectArea.id = "sarea"+q;
center.className = "center";
center.appendChild(text);
selectArea.appendChild(center);
selectArea.appendChild(button);

//hide the select field
selects[q].className += " outtaHere";
//insert select div
selects[q].parentNode.insertBefore(selectArea, selects[q]);
//build & place options div

var optionsDiv = document.createElement("div");

var optionsList = document.createElement("ul");
optionsDiv.innerHTML += "<div class='select-top'><div></div></div>";
optionsDiv.appendChild(optionsList);

selects[q]._options = optionsList;

optionsDiv.style.width = stWidth + "px";
optionsDiv._parent = selectArea;

optionsDiv.className = "optionsDivInvisible";
optionsDiv.id = "optionsDiv"+q;


populateSelectOptions(selects[q]);
optionsDiv.innerHTML += "<div class='select-bottom'><div class='select-bottom-left'></div><div class='select-bottom-right'></div></div>";
document.getElementsByTagName("body")[0].appendChild(optionsDiv);
selects[q].replaced = true;
}
all_selects = true;
}
}

теперь что мне нужно дальше сделать. Очень прошу написать пример кодом, а не словами.

Всего: 112