php - fatal error : Uncaught SoapFault exception: [soap:Client]

标签 php soap payment-gateway

你好我的支付网关有问题,当网关中的工作完成并通过下面的编码返回到这个文件时

 <?php
 include("app/config.php"); 
 $db_connect = mysql_connect($AppConfig['db']['host'],$AppConfig['db']['user'],$AppConfig['db']['password']);
 mysql_select_db($AppConfig['db']['database'], $db_connect);
 $rest=mysql_query("SELECT * FROM p_players WHERE player_type=2" );   
 $rowa = mysql_fetch_assoc($rest); 
 $nameadmin=$rowa['name'];
 $idadmin=$rowa['id'];


 // Form Content
 echo '<html dir="rtl">
  <head>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <style>
    .title
    {
        height:30px;
    }     
    input
    {
        font-family:tahoma;
    }
  </style>
  </head>
  <body style="font-family:tahoma;line-height:30px">';
  //echo $this->package['cost'].'--'.$AppConfig['plus']['packages'][0]['cost'];

 // echo $st[1];
 // echo $AppConfig['plus']['payments']['paypal']['merchant_id'];
    if(isset($_POST['status']) && $_POST['status'] == 100){


    $Resnumber = $_POST['resnumber'];
    $Refnumber = $_POST['refnumber'];

    $info = split("_",$Resnumber,2);

    $UID = $info[0];
    $PgID = $info[1];

    $MerchantID = $AppConfig['plus']['payments']['paypal']['merchant_id'];
    $Password = $AppConfig['plus']['payments']['paypal']['key'];

    $Price = $AppConfig['plus']['packages'][$PgID]['cost'];

    $client = new SoapClient('http://merchant.parspal.com/WebService.asmx?wsdl');

    $res = $client->VerifyPayment(array("MerchantID" => $MerchantID , "Password" =>$Password , "Price" =>$Price,"RefNum" =>$Refnumber ));

    $Status = $res->verifyPaymentResult->ResultStatus;
    $PayPrice = $res->verifyPaymentResult->PayementedPrice;



    if($Status == 'success')// Your Peyment Code Only This Event
    {
    $result = mysql_query("SELECT * FROM p_players WHERE id='$UID'");
        while($row = mysql_fetch_array($result)){
            $idplayer=$row['id'];
            $nameplayer=$row['name'];
            $goldb=$AppConfig['plus']['packages'][$PgID]['gold'];

            $subject="خريد با موفقيت";
            $sendsms="خريد شما با موفقيت انجام شد و تعداد $goldb طلا به حسابتان واريز گرديد .  با تشکر از خريدتان -  شماره رسيد پرداخت $Refnumber";
            $Codemaker=rand(10000,200000000);
            $goldenb=0;


            mysql_query("UPDATE p_players SET gold_num = gold_num + '$goldb',new_mail_count=new_mail_count+1,codemaker='$Codemaker',goldb='$goldenb' where id='$idplayer' ") or die(mysql_error());  
            mysql_query("INSERT INTO `p_msgs` (`from_player_id`, `to_player_id`, `from_player_name`, `to_player_name`, `msg_title`, `msg_body`, `creation_date`, `is_readed`, `delete_status`) VALUES( '$idadmin', '$idplayer', '$nameadmin', '$nameplayer', '$subject', '$sendsms', now(), 0, 0)");
        }   


    echo '<div style="color:green">
      بازگشت از عمليات پرداخت، با موفقيت انجام شد.
      <br />
        شماره رسيد : '.$_POST['refnumber'].'
    <br/>
      <a href="http://'.$_SERVER['SERVER_NAME'].'">مشاهده سايت</a></div>';
      exit();
}
else {
    echo '<div style="color:red">
      شماره رسيد صحيح نمي باشد . '.$Status.'
      <br />
        شماره رسيد : '.$_POST['refnumber'].'
    <br/>
      <a href="http://'.$_SERVER['SERVER_NAME'].'">مشاهده سايت</a></div>';
      exit();
}

    }
    if(isset($_POST['status'])){
    echo '<div style="color:red">
  بازگشت از عمليات پرداخت، خطا در انجام عمليات پرداخت ( پرداخت ناموق ) !
  <br />
  <a href="http://'.$_SERVER['SERVER_NAME'].'">مشاهده سايت </a></div>';
  exit();
    }

   echo '</body>
    </html>';
  ?>

我正面临以下错误

Fatal error: Uncaught SoapFault exception: [soap:Client] Server was unable to read request. ---> There is an error in XML document (2, 235). ---> Input string was not in a correct format. in /home/travianx/public_html/ts1/parspal.php:53 Stack trace: #0 /home/travianx/public_html/ts1/parspal.php(53): SoapClient->__call('VerifyPayment', Array) #1 /home/travianx/public_html/ts1/parspal.php(53): SoapClient->VerifyPayment(Array) #2 {main} thrown in /home/travianx/public_html/ts1/parspal.php on line 53

我联系了我的支付支持,他们说我必须授予访问权限:http://merchant.parspal.com/WebService.asmx?wsdl

而且我不知道他们是怎么说的,怎么说的!请帮我! 我有 vps,上面安装了 cpanel

最佳答案

您需要捕获您的 Soap 客户端错误,它们通常会返回更多格式:

try{
    $client = new SoapClient('http://merchant.parspal.com/WebService.asmx?wsdl');
    $res = $client->VerifyPayment(array("MerchantID" => $MerchantID , "Password" =>$Password , "Price" =>$Price,"RefNum" =>$Refnumber ));
}catch (SoapFault $e){
    print_r($client);
    // or other error handling
}

关于php - fatal error : Uncaught SoapFault exception: [soap:Client],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14174584/

相关文章:

php - 将文件sql导入cpanel服务器上的phpmyadmin时出现超时错误

authentication - NetSuite SuiteTalk token 认证 : Invalid login attempt

PayPal - 如果已经批准了一些计费协议(protocol),则计费计划处于非事件状态怎么办?

jquery - codeigniter 上的 PayPal 付款

php - 安装 PHP 7 后如何安装/启用 intl 和 xsl 扩展

php - webview android 中未显示 Paypal 支付页面 credicard 选项

php - 使用 PHP Mysql 删除行

c# - 如何将可变数量的参数传递给网络服务

c# - 不知道如何创建 SOAP <wsse :Security> header

cordova-plugins - cordova inappbrowser 空白白屏