2016-11-28 15 views
0

サイクロス3.7.3に関する知識を持っている人には、私はwebshopの支払い作業をしようとしていますが、エラーを見つけることができ、チケットを生成する際にエラーが発生しました。私は未定義のプロパティを得た後、チケットを印刷:

は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

変数の代わりに静的を使用するとどうなるでしょうか 例: $ 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

関連する問題