public void Update(PaymentResponse payment)
 {
     if (payment != null)
     {
         Status = payment.Status();
         ZaypayPaymentId = payment.PaymentId();
     }
 }
 private bool UnknownPlatform(ref PaymentResponse payment)
 {
     string platform = payment.Platform().ToLower();
     return (platform != "sms" && platform != "phone");
 }
 private bool SmsWithVerification(ref PaymentResponse payment)
 {
     return (payment.Platform().ToLower() == "sms" && payment.VerificationNeeded() == true);
 }
        private int SetNeedPollingValue(ref PaymentResponse payment)
        {
            string status = payment.Status();
            bool verNeeded = payment.VerificationNeeded();
            string platform = payment.Platform();

            if (status == "in_progress")
            {
                // if PayperMinute, or sms with verificatio, or unknown payment
                if (PayPerMinute(ref payment) || SmsWithVerification(ref payment) || UnknownPlatform(ref payment))
                {
                    return 1;
                }
                else
                {
                    return 0;
                }

            }
            else if (status == "paused")
                return 1;
            else
                return 0;
        }
 // ========================================================================================
 // PRIVATE METHODS
 // ========================================================================================
 private bool PayPerMinute(ref PaymentResponse payment)
 {
     return (payment.Platform().ToLower() == "phone" && payment.SubPlatform().ToLower() == "pay per minute");
 }
        private void SetViewData(ref PaymentResponse payment)
        {
            Hashtable instructions = payment.Instructions();

            ViewData.Add("instructions", instructions["long-instructions"]);
            ViewData.Add("status", payment.Status());

            ViewData.Add("verification_needed", payment.VerificationNeeded());
            ViewData.Add("verification_tries_left", payment.VerificationTriesLeft());
        }
        private void SetCreateViewData(ref PaymentResponse payment, ref Purchase purchase, int paymentMethodId)
        {
            Hashtable instructions = payment.Instructions();
            ViewData.Add("instructions", instructions["long-instructions"]);

            //ViewData.Add("status", payment.Status());
            ViewData.Add("verification_needed", payment.VerificationNeeded());
            ViewData.Add("verification_tries_left", payment.VerificationTriesLeft());
            //ViewData.Add("payment_id", purchase.ZaypayPaymentId);
            //ViewData.Add("paymentMethodChoosen", paymentMethodId);
        }