2016-11-28 2 views
0

Для тех, у кого есть знания с cyclos 3.7.3, я пытаюсь получить оплату за интернет-магазин, но я могу найти ошибку, и все, что я получаю, это билет с генерированием ошибок, я пытался распечатать билет я получил Undefined недвижимость:

StdClass :: $ возврат в строке C: \ XAMPP \ HTDOCS \ cyclos_ws \ prepare_payment.php на линии 29.

Это код, я использую , Спасибо за помощь.

<?php 
// Get the web service proxy 
require_once 'cyclos.php'; 
$cyclos = new Cyclos(); 
$webShopService = $cyclos->service('webshop'); 

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

    $user = $_POST['user']; 
    $description = $_POST['description']; 
    $amount = $_POST['amount']; 
    $adsip = $_POST['adsip']; 
} 

// Setup the payment parameters 
$params = new stdclass(); 
$params->amount = $amount; 
$params->description = '$description'; 
$params->clientAddress = '$adsip'; 
$params->toUsername = '$user'; 

// This should be the absolute url for the page which will process the payment 
$params->returnUrl = "http://localhost/cyclos_ws/complete_payment.php"; 

// Generate the ticket 
try { 
    //Ensure the input parameter is named 'params' and the output, 'return' 
    $ticket = $webShopService->generate(array('params' => $params))->return; //line 29 
} catch (SoapFault $e) { 
    die("Error generating a payment ticket: $e"); 
} 
print_r($ticket); 

// With the ticket ok, redirect the client to perform the payment 
//header("Location: ".Cyclos::$server_root."/do/webshop/payment?ticket=".$ticket) ; 
?> 
+0

Возможно, вам что-то не хватает в коде. Проверьте документацию. https://www.cyclos.org/wiki/index.php?title=Web_services/WebShop_payment – Perumal

+0

Я проверил и перекодировал, но ничего не пропало – user3143519

+0

Пробовал ли вы проверять результат $ webShopService-> generate (array (' params '=> $ params)), используя var_dump()? Это может быть переменная «return» не находится в корне объекта. –

ответ

0

Вы использовали переменные в одинарных кавычках. Он должен быть заключен в двойные кавычки.

PHP не анализирует отдельные кавычки, поэтому переменные в одинарных кавычках будут игнорироваться. Например:

$var = 'String'; 
echo 'This is a $var'; // Output: This is a $var 

$var = 'String'; 
echo "$var"; // Output: This is a String 

Переменные внутри двойных кавычек будут анализироваться на PHP для проверки и обработки их.

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

+0

Что делать, если я использую static вместо переменной пример: $ params = new stdclass(); $ params-> amount = 23; $ params-> description = 'test'; $ params-> clientAddress = '192.168.x.x'; $ params-> toUsername = 'user'; Правильно ли это? – user3143519

+0

Вы передали буквальные значения, поэтому он будет работать. Вы можете передавать только переменные без каких-либо котировок, таких как '$ params-> description = $ description'. Вы можете сделать это, если собираетесь использовать только переменные. – Perumal

+0

ну он не сделал работуffffffff – user3143519

Смежные вопросы