Exemplo n.º 1
0
        public ActionResult Query(QueryViewModel queryViewModel)
        {
            //testing query functionality
            Query query = new Query();

            query.InitializeValues(queryViewModel.Stamp, queryViewModel.Reference,
                                   this.merchantId, queryViewModel.Amount, this.merchantSecretKey);

            //send Query to Checkout Finland
            try
            {
                ViewBag.QueryResponse = CheckoutClient.postQueryData(query.FormData());
            }
            catch (WebException ex)
            {
                //exception handling for testing
                ViewBag.PaymentResponseMessage = "error: " + ex.ToString();
                return(View("PaymentResponseError"));
            }

            //get status value
            XDocument xmlDoc      = XDocument.Parse(ViewBag.QueryResponse);
            XElement  statusNode  = (XElement)xmlDoc.FirstNode;
            string    statusValue = statusNode.Value;

            ViewBag.QueryResponseMessage =
                PaymentUtils.GetPaymentResponseStatusMessage(statusValue);

            return(View());
        }
Exemplo n.º 2
0
        public ActionResult PaymentResponse(
            String VERSION, String STAMP, String REFERENCE,
            String PAYMENT, String STATUS, String ALGORITHM, String MAC)
        {
            PaymentResponse paymentResponse = new PaymentResponse();

            paymentResponse.SetValues(merchantSecretKey, Request.Params);

            //if response valid (ok data)
            if (paymentResponse.IsValid())
            {
                ViewBag.PaymentResponseMessage =
                    PaymentUtils.GetPaymentResponseStatusMessage(paymentResponse.Status);
            }
            else //invalid response (corrupt data)
            {
                ViewBag.PaymentResponseMessage = "response invalid";
                return(View("PaymentResponseError"));
            }

            //set form values ready for payment status query
            QueryViewModel queryViewModel = new QueryViewModel();

            queryViewModel.Stamp     = paymentResponse.Stamp;
            queryViewModel.Reference = paymentResponse.Reference;
            //Get Amount from Session, because it's not available
            //from PaymentResponse (for testing).
            queryViewModel.Amount = (string)Session["Amount"];

            return(View(queryViewModel));
        }