//private GoogleCheckOutSettingInfo GetSettingGooglePayment()
    //{
    //    GoogleCheckOutSettingInfo setting = new GoogleCheckOutSettingInfo();
    //    GoogleCheckOutWCFService ser = new GoogleCheckOutWCFService();

    //}
    public static void ProcessNotification(string serialNumber)
    {
        GoogleCheckOutWCFService            pw = new GoogleCheckOutWCFService();
        List <GoogleCheckOutSettingKeyInfo> sf;

        sf          = pw.GoogleCheckOutSettingKey();
        MerchantID  = sf[0].GoogleMerchantID;
        MerchantKey = sf[0].GoogleMerchantKey;
        Environment = sf[0].GoogleEnvironmentType;

        GCheckout.OrderProcessing.NotificationHistorySerialNumber sn = new NotificationHistorySerialNumber(serialNumber);
        GCheckout.OrderProcessing.NotificationHistoryRequest      oneNotificationHistoryRequest = new NotificationHistoryRequest(MerchantID, MerchantKey, Environment, sn); //newNotificationHistorySerialNumber(serialNumber)
        //Response
        NotificationHistoryResponse oneNotificationHistoryResponse = (NotificationHistoryResponse)oneNotificationHistoryRequest.Send();

//Get type of notification
        object notification = GCheckout.Util.EncodeHelper.Deserialize(oneNotificationHistoryResponse.ResponseXml);

//Check for the notification and call functions according to that
        if (notification.GetType().Equals(typeof(GCheckout.AutoGen.NewOrderNotification)))

        {
            GCheckout.AutoGen.NewOrderNotification oneNewOrderNotification = (GCheckout.AutoGen.NewOrderNotification)notification;

            if (oneNewOrderNotification.serialnumber.Equals(serialNumber))

            {
                HandleNewOrderNotification(oneNewOrderNotification);
            }
        }

        else if (notification.GetType().Equals(typeof(GCheckout.AutoGen.OrderStateChangeNotification)))

        {
            GCheckout.AutoGen.OrderStateChangeNotification oneOrderStateChangeNotification = (GCheckout.AutoGen.OrderStateChangeNotification)notification;

            if (oneOrderStateChangeNotification.serialnumber.Equals(serialNumber))

            {
                HandleOrderStateChangeNotification(oneOrderStateChangeNotification);
            }
        }

        else if (notification.GetType().Equals(typeof(GCheckout.AutoGen.RiskInformationNotification)))

        {
            GCheckout.AutoGen.RiskInformationNotification oneRiskInformationNotification = (GCheckout.AutoGen.RiskInformationNotification)notification;

            if (oneRiskInformationNotification.serialnumber.Equals(serialNumber))

            {
                HandleRiskInformationNotification(oneRiskInformationNotification);
            }
        }

        else if (notification.GetType().Equals(typeof(GCheckout.AutoGen.AuthorizationAmountNotification)))

        {
            GCheckout.AutoGen.AuthorizationAmountNotification oneAuthorizationAmountNotification = (GCheckout.AutoGen.AuthorizationAmountNotification)notification;

            if (oneAuthorizationAmountNotification.serialnumber.Equals(serialNumber))

            {
                HandleAuthorizationAmountNotification(oneAuthorizationAmountNotification);
            }
        }

        else if (notification.GetType().Equals(typeof(GCheckout.AutoGen.ChargeAmountNotification)))

        {
            GCheckout.AutoGen.ChargeAmountNotification oneChargeAmountNotification = (GCheckout.AutoGen.ChargeAmountNotification)notification;

            if (oneChargeAmountNotification.serialnumber.Equals(serialNumber))

            {
                HandleChargeAmountNotification(oneChargeAmountNotification);
            }
        }

        else

        {
            string exceptionText = "Unhandled Type [" + notification.GetType().ToString() + "]!; serialNumber=[" + serialNumber + "];";

            throw new ArgumentOutOfRangeException(exceptionText);
        }
    }
Exemple #2
0
    public static void ProcessNotification(string serialNumber)
    {
        //The next two statements set up a request and call google checkout for the details based on that serial number.

        NotificationHistoryRequest oneNotificationHistoryRequest
            = new NotificationHistoryRequest(new NotificationHistorySerialNumber(serialNumber));

        NotificationHistoryResponse oneNotificationHistoryResponse
            = (NotificationHistoryResponse)oneNotificationHistoryRequest.Send();

        // oneNotificationHistoryResponse.ResponseXml contains the complete response

        //what you need to do now is process the data that was returned.

        // Iterate through the notification history for this order looking for the notification that exactly matches the given serial number
        foreach (object oneNotification in oneNotificationHistoryResponse.NotificationResponses)
        {
            if (oneNotification.GetType().Equals(typeof(GCheckout.AutoGen.NewOrderNotification)))
            {
                GCheckout.AutoGen.NewOrderNotification oneNewOrderNotification = (GCheckout.AutoGen.NewOrderNotification)oneNotification;
                if (oneNewOrderNotification.serialnumber.Equals(serialNumber))
                {
                    HandleNewOrderNotification(oneNewOrderNotification);
                }
            }
            else if (oneNotification.GetType().Equals(typeof(GCheckout.AutoGen.OrderStateChangeNotification)))
            {
                GCheckout.AutoGen.OrderStateChangeNotification oneOrderStateChangeNotification = (GCheckout.AutoGen.OrderStateChangeNotification)oneNotification;
                if (oneOrderStateChangeNotification.serialnumber.Equals(serialNumber))
                {
                    HandleOrderStateChangeNotification(oneOrderStateChangeNotification);
                }
            }
            else if (oneNotification.GetType().Equals(typeof(GCheckout.AutoGen.RiskInformationNotification)))
            {
                GCheckout.AutoGen.RiskInformationNotification oneRiskInformationNotification = (GCheckout.AutoGen.RiskInformationNotification)oneNotification;
                if (oneRiskInformationNotification.serialnumber.Equals(serialNumber))
                {
                    HandleRiskInformationNotification(oneRiskInformationNotification);
                }
            }
            else if (oneNotification.GetType().Equals(typeof(GCheckout.AutoGen.AuthorizationAmountNotification)))
            {
                GCheckout.AutoGen.AuthorizationAmountNotification oneAuthorizationAmountNotification = (GCheckout.AutoGen.AuthorizationAmountNotification)oneNotification;
                if (oneAuthorizationAmountNotification.serialnumber.Equals(serialNumber))
                {
                    HandleAuthorizationAmountNotification(oneAuthorizationAmountNotification);
                }
            }
            else if (oneNotification.GetType().Equals(typeof(GCheckout.AutoGen.ChargeAmountNotification)))
            {
                GCheckout.AutoGen.ChargeAmountNotification oneChargeAmountNotification = (GCheckout.AutoGen.ChargeAmountNotification)oneNotification;
                if (oneChargeAmountNotification.serialnumber.Equals(serialNumber))
                {
                    HandleChargeAmountNotification(oneChargeAmountNotification);
                }
            }
            else
            {
                throw new ArgumentOutOfRangeException("Unhandled Type [" + oneNotification.GetType().ToString() + "]!; serialNumber=[" + serialNumber + "];");
            }
        }
    }