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

在您的函数 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 回答
1

您可以做的最简单的事情是将返回值放入一个数组中,以便稍后访问:

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

然后:

列表($RespDesc,$MerchResp,$AuthCode,$MerchError)=$my_return_value

于 2012-09-19T09:33:50.830 回答