src/icepay_api_webservice.php
public function phoneCheckout(Icepay_PaymentObject_Interface_Abstract $paymentObj, $getUrlOnly = false)
    {
        $obj = new StdClass();

        // Must be in specific order for checksum ---------
        $obj->MerchantID = $this->getMerchantID();
        $obj->Timestamp = $this->getTimeStamp();
        $obj->Amount = $paymentObj->getAmount();
        $obj->Country = $paymentObj->getCountry();
        $obj->Currency = $paymentObj->getCurrency();
        $obj->Description = $paymentObj->getDescription();
        $obj->EndUserIP = $this->getIP();
        $obj->Issuer = $paymentObj->getIssuer();
        $obj->Language = $paymentObj->getLanguage();
        $obj->OrderID = $paymentObj->getOrderID();
        $obj->PaymentMethod = $paymentObj->getPaymentMethod();
        $obj->Reference = $paymentObj->getReference();
        $obj->URLCompleted = $this->getSuccessURL();
        $obj->URLError = $this->getErrorURL();

        $obj->Checksum = $this->generateChecksum($obj, $this->getSecretCode());

        $result = $this->client->PhoneCheckout(array('request' => $obj));

        /* store the checksum momentarily */
        $checksum = $result->PhoneCheckoutResult->Checksum;

        /* Replace the checksum in the data with secretCode to generate a new checksum */
        $result->PhoneCheckoutResult->Checksum = $this->getSecretCode();

        /* Verify response data */
        if ($checksum != $this->generateChecksum($result->PhoneCheckoutResult))
            throw new Exception("Data could not be verified");

        /* Return mister checksum */
        $result->PhoneCheckoutResult->Checksum = $checksum;

        /* Return only the payment URL if required */
        if ($getUrlOnly)
            return $result->PhoneCheckoutResult->PaymentScreenURL;

        /* Default return all data */
        return (array) $result->PhoneCheckoutResult;
    }
public function phoneCheckout(Icepay_PaymentObject_Interface_Abstract $paymentObj, $getUrlOnly = false)
    {
        $obj = new StdClass();

        // Must be in specific order for checksum ---------
        $obj->MerchantID = $this->getMerchantID();
        $obj->Timestamp = $this->getTimeStamp();
        $obj->Amount = $paymentObj->getAmount();
        $obj->Country = $paymentObj->getCountry();
        $obj->Currency = $paymentObj->getCurrency();
        $obj->Description = $paymentObj->getDescription();
        $obj->EndUserIP = $this->getIP();
        $obj->Issuer = $paymentObj->getIssuer();
        $obj->Language = $paymentObj->getLanguage();
        $obj->OrderID = $paymentObj->getOrderID();
        $obj->PaymentMethod = $paymentObj->getPaymentMethod();
        $obj->Reference = $paymentObj->getReference();
        $obj->URLCompleted = $this->getSuccessURL();
        $obj->URLError = $this->getErrorURL();

        $obj->Checksum = $this->generateChecksum($obj, $this->getSecretCode());

        $result = $this->client->PhoneCheckout(array('request' => $obj));

        /* store the checksum momentarily */
        $checksum = $result->PhoneCheckoutResult->Checksum;

        /* Replace the checksum in the data with secretCode to generate a new checksum */
        $result->PhoneCheckoutResult->Checksum = $this->getSecretCode();

        /* Verify response data */
        if ($checksum != $this->generateChecksum($result->PhoneCheckoutResult))
            throw new Exception("Data could not be verified");

        /* Return mister checksum */
        $result->PhoneCheckoutResult->Checksum = $checksum;

        /* Return only the payment URL if required */
        if ($getUrlOnly)
            return $result->PhoneCheckoutResult->PaymentScreenURL;

        /* Default return all data */
        return (array) $result->PhoneCheckoutResult;
    }
public function phoneCheckout ( Icepay_PaymentObject_Interface_Abstract $ paymentObj , $ getUrlOnly = false ) { $ obj = new StdClass ( ) ; // Must be in specific order for checksum --------- $ obj -> MerchantID = $ this -> getMerchantID ( ) ; $ obj -> Timestamp = $ this -> getTimeStamp ( ) ; $ obj -> Amount = $ paymentObj -> getAmount ( ) ; $ obj -> Country = $ paymentObj -> getCountry ( ) ; $ obj -> Currency = $ paymentObj -> getCurrency ( ) ; $ obj -> Description = $ paymentObj -> getDescription ( ) ; $ obj -> EndUserIP = $ this -> getIP ( ) ; $ obj -> Issuer = $ paymentObj -> getIssuer ( ) ; $ obj -> Language = $ paymentObj -> getLanguage ( ) ; $ obj -> OrderID = $ paymentObj -> getOrderID ( ) ; $ obj -> PaymentMethod = $ paymentObj -> getPaymentMethod ( ) ; $ obj -> Reference = $ paymentObj -> getReference ( ) ; $ obj -> URLCompleted = $ this -> getSuccessURL ( ) ; $ obj -> URLError = $ this -> getErrorURL ( ) ; $ obj -> Checksum = $ this -> generateChecksum ( $ obj , $ this -> getSecretCode ( ) ) ; $ result = $ this -> client -> PhoneCheckout ( array ( 'request' => $ obj ) ) ; /* store the checksum momentarily */ $ checksum = $ result -> PhoneCheckoutResult -> Checksum ; /* Replace the checksum in the data with secretCode to generate a new checksum */ $ result -> PhoneCheckoutResult -> Checksum = $ this -> getSecretCode ( ) ; /* Verify response data */ if ( $ checksum != $ this -> generateChecksum ( $ result -> PhoneCheckoutResult ) ) throw new Exception ( "Data could not be verified" ) ; /* Return mister checksum */ $ result -> PhoneCheckoutResult -> Checksum = $ checksum ; /* Return only the payment URL if required */ if ( $ getUrlOnly ) return $ result -> PhoneCheckoutResult -> PaymentScreenURL ; /* Default return all data */ return ( array ) $ result -> PhoneCheckoutResult ; }
The PhoneCheckout web method  allows you to create a phone payment in the ICEPAY system. The
main difference with the  Checkout web method is the response. The response  is  a
PhoneCheckoutResponse object, which contains extra members such as the phone number etc., making
seamless integration possible.

@since 2.1.0
@access public
@param array $data
@param bool $geturlOnly
@return array result
The PhoneCheckout web method allows you to create a phone payment in the ICEPAY system . The main difference with the Checkout web method is the response . The response is a PhoneCheckoutResponse object which contains extra members such as the phone number etc . making seamless integration possible .