在SOAP响应中获取PHP警告以及在PHP

时间:2015-11-05 15:25:56

标签: php soap

当我测试我的SOAP服务器时,我收到了成功响应的PHP警告html消息。

SOAP服务器如下所示:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache
ini_set("allow_url_fopen", "On");
$server = new SoapServer("../billerwebservice/BillerWS.wsdl"); // WSDL file for function definitions
$server->setClass("Payment");
//$server->addFunction(array("payAccount","confirmRequest","voidRequest")); // Same func name as in our WSDL XML, and below
$server->handle();  

class payAccountResponse {
    public $return;
}

class confirmResponse {
    public $return;
}

class voidResponse {
    public $return;
}

class Payment extends CI_Controller {

    /*function __construct(){
        parent::__construct();
        $this->load->library("nusoap");     
    }*/


    public function index(){


        //url for this page is base_url('api/payment')
        //http://tuition24.net/admin/api/payment
        //this file is in tuition24 server => /admin/application/controllers/api/Payment.php

        //ini_set('display_errors', 0);

        /*$l_oServer = new soap_server();

        // wsdl generation
        $l_oServer->debug_flag=false;
        $l_oServer->configureWSDL('BillerWS', 'http://billerwebservice.co.za');
        $l_oServer->wsdl->schemaTargetNamespace = 'http://billerwebservice.co.za';

        // add complex type
        $l_oServer->wsdl->addComplexType(
            'userData',
            'complexType',
            'struct',
            'all',
            ''
        );

        // register method
        $l_oServer->register('payAccount', array(
            'login' => 'xsd:string',
            'password'=>'xsd:string',
            'verifyOnly'=>'xsd:boolean',
            'amount'=>'xsd:string',
            'transid'=>'xsd:string'
            ), 
                array('return'=>'tns:userData'), 
                    'http://billerwebservice.co.za');*/




        // pass incoming (posted) data
        //$l_oServer->service(file_get_contents('php://input')); 

    }

    public function payAccount ($parameters){
    /*if($verifyOnly){
        if($this->checklogin($login,$password)){
            return $this->enquiry($username);
        }else{

        }
    }else{*/
    $return_array = new ArrayObject();

    $parameters = get_object_vars($parameters); // Pull parameters from SOAP connection

    // Sort out the parameters and grab their data
    $loginId = $parameters['LoginID']; 
    $pwd = $parameters['Password'];
    $paymentRefNumber = $parameters['PayRefNo']; 
    $amountDue = $parameters['AmountDue'];

    $code = $this->generatecode($paymentRefNumber,$amountDue); 
    if($this->checklogin($loginId,$pwd)){
        $params = new StdClass();
        $params->RespCode = '200';
        $params->RespDesc = 'Success';
        $params->Code = $code;
        $params->PayRefNo =  $paymentRefNumber;
        $currentDateTime = date("y-m-d h:i:s");

        //update database
        $this->db->insert('payment_transactions',array(
        'datetime'=>$currentDateTime,
        'transactionid'=>$paymentRefNumber,
        'tokennumber'=>$code,
        'status'=>'Success',
        'amount'=>$amountDue
        ));

        $response = new payAccountResponse();
        $response->return = $params;
        return $response;
    }else{

    }
    //}
}

    public function confirmRequest($parameters){
    $return_array = new ArrayObject();

    $parameters = get_object_vars($parameters); // Pull parameters from SOAP connection

    // Sort out the parameters and grab their data
    $loginId = $parameters['LoginID']; 
    $pwd = $parameters['Password'];
    $paymentRefNumber = $parameters['PayRefNo']; 

    if($this->checklogin($loginId,$pwd)){
        $params = new StdClass();
        $params->messageCode = '200';
        $params->messageDescription = 'ConfirmOK';
        $currentDateTime = date("y-m-d h:i:s");

        $data = $this->db->query("select * from payment_transactions where transactionid='$paymentRefNumber'")->row_array();
        $tokennumber = $data['tokennumber'];

        $this->db->insert('payment_transactions',array(
        'datetime'=>$currentDateTime,
        'transactionid'=>$paymentRefNumber,
        'tokennumber'=>$tokennumber,
        'status'=>'ConfirmOK',
        'amount'=>$data['amount'],
        ));

        //$this->confirm($paymentRefNumber,$tokennumber,$loginId);

        $response = new confirmResponse();
        $response->return = $params;
        return $response;
    }else{

    }
}

    public function voidRequest($parameters){

    $return_array = new ArrayObject();
    $parameters = get_object_vars($parameters); // Pull parameters from SOAP connection

    // Sort out the parameters and grab their data
    $loginId = $parameters['LoginID']; 
    $pwd = $parameters['Password'];
    $paymentRefNumber = $parameters['PayRefNo']; 
    $currentDateTime = date("y-m-d h:i:s");

    $params = new StdClass();
    $params->messageCode = '200';
    $params->messageDescription = 'VoidOK';

    $data = $this->db->query("select * from payment_transactions where transactionid='$paymentRefNumber'")->row_array();

    $this->db->insert('payment_transactions',array(
    'datetime'=>$currentDateTime,
    'transactionid'=>$paymentRefNumber,
    'tokennumber'=>$data['tokennumber'],
    'status'=>'VoidOK',
    'amount'=>$data['amount'],
    ));

    $this->cancel($paymentRefNumber);

    $response = new voidResponse();
    $response->return = $params;
    return $response;
}


    private function checklogin($username,$password){
        $data = $this->db->query("select * from payment_user where username='$username' and password='$password'")->row_array();
        if($data)
            return true;
        else
            return false;
    }

    private function enquiry($username){
        $data = $this->db->query("select balance from user where username='$username'")->row_array();

        if($data)
        return $data['balance'];

    }

    private function generatecode($transid,$amount){
        $r = rand(100000000000,999999999999);
        if(!$this->db->insert('code',array('code_no'=>$r,'amount'=>$amount,'transaction_id'=>$transid))){
            return $this->generatecode($transid,$amount);
        }
        return $r;
    }

    private function cancel($transid){
        $this->db->delete('code',array('transaction_id'=>$transid));
    }

    private function confirm($transid,$card_code,$username){
        $data = $this->db->get_where('code',array('code_no'=>$card_code,'transaction_id'=>$transid,'active'=>1))->row_array();
        if(!$data)
            return false;
        $card_amount = $data['amount'];
        $user_id = $this->db->get_where('user',array('username'=>$username))->row_array()['id'];
        $this->db->query("UPDATE user SET balance=balance+$card_amount where username='$username'");
        $this->db->insert('transaction',array(
                'user_id'=>$user_id,
                'reason'=>'Credited '.$card_amount.' using #'.$card_code,
                'type'=>3,
                'amount'=>$card_amount,
                'params'=>$card_code.' '.$transid
            ));
        $this->db->update('code',array('active'=>0),array('code_no'=>$card_code));
        $bal = $this->db->get_where('user',array('id'=>$user_id))->result()[0]->balance;
        return $bal;
    }

}

请让我知道为什么我会收到这些警告。The image attached has error shown 附带的图像显示错误

0 个答案:

没有答案