Example #1
0
        public override string ProcessPaymentReturn(HttpContext context)
        {
            var ResultQs = Utils.RequestQueryStringParam(context, "result");

            if (!string.IsNullOrEmpty(ResultQs))
            {
                var orderid = Utils.RequestQueryStringParam(context, "orderid");
                if (Utils.IsNumeric(orderid))
                {
                    var settings = ProviderUtils.GetProviderSettings("NBrightPxPaypayment");

                    string PxPayUserId = settings.GetXmlProperty("genxml/textbox/pxpayuserid");
                    string PxPayKey    = settings.GetXmlProperty("genxml/textbox/pxpaykey");

                    // Obtain the transaction result
                    PxPay WS = new PxPay(PxPayUserId, PxPayKey);

                    ResponseOutput output = WS.ProcessResponse(ResultQs);

                    if (output.TxnId != null)
                    {
                        var orderData = new OrderData(Convert.ToInt32(orderid));
                        // check we have a waiting for bank status.
                        if (orderData.OrderStatus == "020")
                        {
                            if (output.valid == "1" && output.Success == "1")
                            {
                                if (orderData.PurchaseInfo.GetXmlProperty("genxml/txnid") == output.TxnId)
                                {
                                    orderData.PaymentOk();
                                }
                            }
                            else
                            {
                                // update order fail
                                var rtnerr = orderData.PurchaseInfo.GetXmlProperty("genxml/paymenterror");
                                if (rtnerr == "")
                                {
                                    rtnerr = "fail";               // to return this so a fail is activated.
                                }
                                orderData.PaymentFail();
                                return(rtnerr);
                            }
                        }
                    }
                }
            }
            return("");
        }