示例#1
0
        public string GetBankingURL(double amount, string bankcode, string idbill, DateTime createDate, string language = "vn")
        {
            //Build URL for VNPAY
            VnPayLibrary vnpay          = new VnPayLibrary();
            string       vnp_HashSecret = VNPAY_HASH_SECRECT;
            string       vnp_TmnCode    = VNPAY_TMNCODE;

            vnpay.AddRequestData("vnp_Locale", language);
            vnpay.AddRequestData("vnp_Version", VNPAY_VERSION);
            vnpay.AddRequestData("vnp_Command", "pay");
            vnpay.AddRequestData("vnp_TmnCode", vnp_TmnCode);
            vnpay.AddRequestData("vnp_CurrCode", "VND");
            vnpay.AddRequestData("vnp_TxnRef", idbill);
            vnpay.AddRequestData("vnp_OrderInfo", "He thong yeu cau thanh toan cho hoa don " + idbill);
            vnpay.AddRequestData("vnp_OrderType", "250006"); //default value: other
            vnpay.AddRequestData("vnp_Amount", (amount * 100).ToString());
            vnpay.AddRequestData("vnp_ReturnUrl", HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + "/Cart/Callback");
            vnpay.AddRequestData("vnp_IpAddr", Utils.GetIpAddress());
            vnpay.AddRequestData("vnp_CreateDate", createDate.ToString("yyyyMMddHHmmss"));
            vnpay.AddRequestData("vnp_BankCode", bankcode);
            string paymentUrl = vnpay.CreateRequestUrl(URL_VNPAY_INTERNET_BANKING, vnp_HashSecret);

            return(paymentUrl);
        }
示例#2
0
        public void Refund(long IDVNPay, string OrderId, DateTime payDate, float Amount, string info)
        {
            var    vnpay_api_url = URL_VNPAY_REFUND;
            var    vnpHashSecret = VNPAY_HASH_SECRECT;
            string vnp_TmnCode   = VNPAY_TMNCODE;
            var    vnpay         = new VnPayLibrary();
            var    createDate    = DateTime.Now;
            var    strDatax      = "";

            try

            {
                var amountrf = Convert.ToInt32(Amount) * 100;
                vnpay.AddRequestData("vnp_Version", VNPAY_VERSION);
                vnpay.AddRequestData("vnp_Command", "refund");
                vnpay.AddRequestData("vnp_TmnCode", vnp_TmnCode);

                vnpay.AddRequestData("vnp_CreateBy", "kiosk");
                vnpay.AddRequestData("vnp_TransactionType", "02");
                vnpay.AddRequestData("vnp_TxnRef", OrderId);
                vnpay.AddRequestData("vnp_Amount", amountrf.ToString());
                vnpay.AddRequestData("vnp_OrderInfo", info);
                vnpay.AddRequestData("vnp_TransDate", payDate.ToString("yyyyMMddHHmmss"));

                vnpay.AddRequestData("vnp_CreateDate", createDate.ToString("yyyyMMddHHmmss"));
                vnpay.AddRequestData("vnp_IpAddr", Utils.GetIpAddress());



                var paymentUrl = vnpay.CreateRequestUrl(vnpay_api_url, vnpHashSecret);

                var request = (HttpWebRequest)WebRequest.Create(paymentUrl);
                request.AutomaticDecompression = DecompressionMethods.GZip;
                using (var response = (HttpWebResponse)request.GetResponse())
                    using (var stream = response.GetResponseStream())
                        if (stream != null)
                        {
                            using (var reader = new StreamReader(stream))
                            {
                                strDatax = reader.ReadToEnd();
                            }
                        }
                var data = strDatax.Split('&');

                //amount
                var vnpAmount = data[0].Split('=');
                var amount    = int.Parse(vnpAmount[1]);

                // ResponseCode
                var vnpResponseCode = data[5].Split('=');
                var responsecode    = vnpResponseCode[1];

                // Vnpay TransactionStatus
                var vnpTransactionStatus = data[8].Split('=');
                var transactionstatus    = vnpTransactionStatus[1];

                // OrderID
                var vnpTxnRef = data[10].Split('=');
                var txnref    = vnpTxnRef[1];
                if (responsecode.Equals("00"))
                {
                    return;
                }
                throw new Exception(strDatax);
            }
            catch (Exception ex)
            {
                throw new Exception(strDatax);
            }
        }
示例#3
0
        public bool Check(string OrderId, DateTime payDate)
        {
            var    vnpay_api_url = URL_VNPAY_REFUND;
            var    vnpHashSecret = VNPAY_HASH_SECRECT;
            string vnp_TmnCode   = VNPAY_TMNCODE;
            var    vnpay         = new VnPayLibrary();
            var    createDate    = DateTime.Now;
            var    strDatax      = "";

            try

            {
                vnpay.AddRequestData("vnp_Version", VNPAY_VERSION);
                vnpay.AddRequestData("vnp_Command", "querydr");
                vnpay.AddRequestData("vnp_TmnCode", vnp_TmnCode);
                vnpay.AddRequestData("vnp_Merchant", "VNPAY");
                vnpay.AddRequestData("vnp_TxnRef", OrderId);
                vnpay.AddRequestData("vnp_OrderInfo", "queryDr ma GD:" + OrderId);
                vnpay.AddRequestData("vnp_TransDate", payDate.ToString("yyyyMMddHHmmss"));
                vnpay.AddRequestData("vnp_CreateDate", createDate.ToString("yyyyMMddHHmmss"));
                vnpay.AddRequestData("vnp_IpAddr", Utils.GetIpAddress());

                var queryDr = vnpay.CreateRequestUrl(vnpay_api_url, vnpHashSecret);
                var request = (HttpWebRequest)WebRequest.Create(vnpay_api_url);
                request.AutomaticDecompression = DecompressionMethods.GZip;
                using (var response = (HttpWebResponse)request.GetResponse())
                    using (var stream = response.GetResponseStream())
                    {
                        if (stream != null)
                        {
                            using (var reader = new StreamReader(stream))
                            {
                                strDatax = reader.ReadToEnd();
                            }
                        }
                    }


                var data = strDatax.Split('&');

                //amount
                var vnpAmount = data[0].Split('=');
                var amount    = int.Parse(vnpAmount[1]) / 100;

                // ResponseCode
                var vnpResponseCode = data[5].Split('=');
                var responsecode    = vnpResponseCode[1];

                // Vnpay TransactionStatus
                var vnpTransactionStatus = data[8].Split('=');
                var transactionstatus    = vnpTransactionStatus[1];

                // OrderID
                var vnpTxnRef = data[10].Split('=');
                var txnref    = vnpTxnRef[1];

                if (transactionstatus.Equals("00"))
                {
                    return(true);
                }
                return(false);
            }
            catch
            {
                return(false);
            }
        }