public function createSession(
        $amount,
        $currency,
        HpsBuyerData $buyer = null,
        HpsPaymentData $payment = null,
        HpsShippingInfo $shippingAddress = null,
        $lineItems = null,
        HpsOrderData $orderData = null
    ) {
        $payload = array(
            'TransactionType' => 'WT',
            'OverridePaymentMethod' => 'MPPWLT',
            'Amount' => $this->formatAmount($amount),
            'CurrencyCode' => $this->currencyStringToNumeric($currency),
            'OverrideCheckoutType' => $this->getCheckoutType($orderData),
            'ConnectTimeout' => '10000',
            'TransactionMode' => 'S',
            'OrderNumber' => $orderData->orderNumber,
            'IPAddress' => $orderData->ipAddress,
            'BrowserHeader' => $orderData->browserHeader,
            'UserAgent' => $orderData->userAgent,
            'OriginUrl' => $orderData->originUrl,
            'TermUrl' => $orderData->termUrl,
        );
        if ($orderData->orderId !== null) {
            $payload['OrderId'] = $orderData->orderId;
        }
        if ($buyer !== null) {
            $payload = array_merge($payload, $this->hydrateBuyerData($buyer));
        }
        if ($payment !== null) {
            $payload = array_merge($payload, $this->hydratePaymentData($payment));
        }
        if ($shippingAddress !== null) {
            $payload = array_merge(
                $payload,
                $this->hydrateShippingInfo($shippingAddress)
            );
        }
        if ($lineItems !== null) {
            $payload = array_merge($payload, $this->hydrateLineItems($lineItems));
        }
        return $this->submitTransaction($payload, 'cmpi_lookup');
    }
public function createSession(
        $amount,
        $currency,
        HpsBuyerData $buyer = null,
        HpsPaymentData $payment = null,
        HpsShippingInfo $shippingAddress = null,
        $lineItems = null,
        HpsOrderData $orderData = null
    ) {
        $payload = array(
            'TransactionType' => 'WT',
            'OverridePaymentMethod' => 'MPPWLT',
            'Amount' => $this->formatAmount($amount),
            'CurrencyCode' => $this->currencyStringToNumeric($currency),
            'OverrideCheckoutType' => $this->getCheckoutType($orderData),
            'ConnectTimeout' => '10000',
            'TransactionMode' => 'S',
            'OrderNumber' => $orderData->orderNumber,
            'IPAddress' => $orderData->ipAddress,
            'BrowserHeader' => $orderData->browserHeader,
            'UserAgent' => $orderData->userAgent,
            'OriginUrl' => $orderData->originUrl,
            'TermUrl' => $orderData->termUrl,
        );
        if ($orderData->orderId !== null) {
            $payload['OrderId'] = $orderData->orderId;
        }
        if ($buyer !== null) {
            $payload = array_merge($payload, $this->hydrateBuyerData($buyer));
        }
        if ($payment !== null) {
            $payload = array_merge($payload, $this->hydratePaymentData($payment));
        }
        if ($shippingAddress !== null) {
            $payload = array_merge(
                $payload,
                $this->hydrateShippingInfo($shippingAddress)
            );
        }
        if ($lineItems !== null) {
            $payload = array_merge($payload, $this->hydrateLineItems($lineItems));
        }
        return $this->submitTransaction($payload, 'cmpi_lookup');
    }
public function createSession ( $ amount , $ currency , HpsBuyerData $ buyer = null , HpsPaymentData $ payment = null , HpsShippingInfo $ shippingAddress = null , $ lineItems = null , HpsOrderData $ orderData = null ) { $ payload = array ( 'TransactionType' => 'WT' , 'OverridePaymentMethod' => 'MPPWLT' , 'Amount' => $ this -> formatAmount ( $ amount ) , 'CurrencyCode' => $ this -> currencyStringToNumeric ( $ currency ) , 'OverrideCheckoutType' => $ this -> getCheckoutType ( $ orderData ) , 'ConnectTimeout' => '10000' , 'TransactionMode' => 'S' , 'OrderNumber' => $ orderData -> orderNumber , 'IPAddress' => $ orderData -> ipAddress , 'BrowserHeader' => $ orderData -> browserHeader , 'UserAgent' => $ orderData -> userAgent , 'OriginUrl' => $ orderData -> originUrl , 'TermUrl' => $ orderData -> termUrl , ) ; if ( $ orderData -> orderId !== null ) { $ payload [ 'OrderId' ] = $ orderData -> orderId ; } if ( $ buyer !== null ) { $ payload = array_merge ( $ payload , $ this -> hydrateBuyerData ( $ buyer ) ) ; } if ( $ payment !== null ) { $ payload = array_merge ( $ payload , $ this -> hydratePaymentData ( $ payment ) ) ; } if ( $ shippingAddress !== null ) { $ payload = array_merge ( $ payload , $ this -> hydrateShippingInfo ( $ shippingAddress ) ) ; } if ( $ lineItems !== null ) { $ payload = array_merge ( $ payload , $ this -> hydrateLineItems ( $ lineItems ) ) ; } return $ this -> submitTransaction ( $ payload , 'cmpi_lookup' ) ; }
Responsible for initiating the MasterPass transaction. The Lookup Message
is constructed and sent to the Centinel platform for processing. The Lookup
Message requires transaction specific data elements to be formatted on the
request message. Please refer to the Message API section for the complete
list of required message elements.

The Centinel platform will then redirect the consumer back to the TermUrl
representing a web page  on the merchant's website. At that point, the
merchant will process the Authenticate message to retrieve the status from
the MasterPass processing.

@param mixed                   $amount          amount to be authorized
@param string                  $currency        currency code
@param HpsBuyerData            $buyer           buyer information
@param HpsPaymentData          $payment         payment information
@param HpsShippingInfo         $shippingAddress shipping information
@param array<int, HpsLineItem> $lineItems       line items from order
@param HpsOrderData            $orderData       Cardinal/MasterPass specific
data

@return object
Responsible for initiating the MasterPass transaction . The Lookup Message is constructed and sent to the Centinel platform for processing . The Lookup Message requires transaction specific data elements to be formatted on the request message . Please refer to the Message API section for the complete list of required message elements .