php - 如何在 PHP 中使用 NuSOAP 处理超时?

标签 php web-services timeout nusoap

我正在使用 NuSOAP 来使用支付网关的 Web 服务,但是,该网关的文档要求:

  • 如果 doPayment() 方法花费的时间超过 300 秒,则应立即执行 getStatus() 方法至少 3 次,以便尝试获得成功响应。

问题是,我不知道如何使用 PHP 和 NuSOAP 处理超时。超时时 NuSOAP 是否返回任何特定响应?我现在怎么办,它实际上已经超时了?

下面是 NuSOAP 调用的一段代码:

$client = new nusoap_client( 'http://webserviceurl?wsdl...' , 'wsdl');

$err = $client->getError();
if ($err)
    die('Constructor error: ' . $err);

$proxy = $client->getProxy();

$payTrans = $proxy->doPayment(array('someparams' => 'somevalues'));

// if doPayment() timed out, then run the getStatus() method

任何意见都将不胜感激。谢谢!

最佳答案

我自己回答一下,供以后引用。首先,您需要延长 nusoap_client 类的超时值。然后在你想要测试的方法之前启动一个计时器,并将其与结束所花费的时间进行比较:

// Extending the timeout value to 300 seconds
$client = new nusoap_client( 'http://webserviceurl?wsdl...' , 'wsdl' , false, false, false, false, 0, 300)

$err = $client->getError();
if ($err)
    die('Constructor error: ' . $err);

$proxy = $client->getProxy();

$start = time(); // starting the timer
$payTrans = $proxy->doPayment(array('someparams' => 'somevalues'));
$timing = time() - $start; // calculating the transaction time

if($timing > 90 && $timing < 310)
    // It timed out: send an email, run another method, etc

关于php - 如何在 PHP 中使用 NuSOAP 处理超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13824422/

相关文章:

php - 删除 OpenCart 中的图像调整比例

php - 使用mysql从两个不同的表中获取结果

asp.net - 异步启动长时间运行的进程

java - 缺少 maxOccurs 是否表示无界

javascript - 清除函数内部的 Angular 超时

php - 坚持选择带有总和的不同记录

php - sql中的组计数产品ID

android - 从 Web 服务获取数据时强制关闭/崩溃

python - 使多处理函数的装饰器超时

带线程的 Python 超时上下文管理器