1

私は Payment Express の PxPost で動作するスクリプトを作成しています。http://www.paymentexpress.com/Technical_Resources/Sample_code_-_PHP/PX_Post_-_cURL.aspxにあるサンプル コードを使用しました。

仕組み: データベースから注文を照会し、処理して値を返す自動化されたスクリプトに組み込まれています。

私の唯一の問題は、関数が複数の値を返すようにしたいので、これが私がやったことです。

関数を実行するコード (201 行目):

$once_complete = process_request($billingID, $order_total, $merchRef);

どちらが処理対象の支払いを送信し、次に返品を取得し、サンプル コードを使用して XML を処理します。コードの最後で、すべての情報を削除$htmlし、次のように置き換えました (111 行目):

return $CardHolderResponseDescription.":".$MerchantResponseText.":".$AuthCode.":".$MerchantError;

私が理解している限り、それを開始したものに戻す必要があります。次に、これらの値を分割し、次を使用して文字列として返します (202 行目):

list($RespDesc, $MerchResp, $AuthCode, $MerchError) = explode(":", $once_complete);

しかし、何らかの理由でそれが機能していません。

リターンをエコーし​​てみましたが、その後は正常に動作しますが、その後は消えているようです。何がうまくいかないのですか?

ページ全体のコードはhttp://pastebin.com/LJjFutneで確認できます。このコードは進行中の作業です。

4

3 に答える 3

9

配列を返します。

function process_request(){
    ...
    return array( $CardHolderResponseDescription, $MerchantResponseText, $AuthCode, $MerchantError );
}

そして、次の方法でそれを受け取ります:

$_result = process_request();
$CardHolderResponseDescription = $_result[0];
$MerchantResponseText = $_result[1];
...

ヒント: 読みやすくするために短い変数を使用してください :)

于 2012-09-19T09:31:13.347 に答える
1

あなたができる最も簡単なことは、後でアクセスできる配列に戻り値を入れることです:

return array("CardHolderResponseDescription"=>$CardHolderResponseDescription, "MerchantResponseText" => $MerchantResponseText, "AuthCode" => $AuthCode );

以降:

list($RespDesc, $MerchResp, $AuthCode, $MerchError) = $my_return_value

于 2012-09-19T09:33:50.830 に答える
1

関数 process_request で:

return array($CardHolderResponseDescription, $MerchantResponseText, $AuthCode, $MerchantError);

関数を呼び出す場合:

list($RespDesc, $MerchResp, $AuthCode, $MerchError) = process_request($billingID,$order_total,$merchRef);
于 2012-09-19T09:28:02.807 に答える