public VnpViewModel GetVnpReturn(VnpOutputModel vnp) { VnpViewModel vnpOutput = new VnpViewModel(); try { BuyPackageHistory apb = cnn.BuyPackageHistories.Find(int.Parse(vnp.vnp_TxnRef)); int money; try { money = int.Parse(vnp.vnp_Amount) / 100; if (money != apb.Price) { vnpOutput.getVnpModel(vnp.vnp_TxnRef, string.Format("{0:#,0}", money), apb.CreateDate.ToString("HH:mm:ss dd/MM/yyyy"), SystemParam.Transaction_False); return(vnpOutput); } } catch { vnpOutput.getVnpModel(vnp.vnp_TxnRef, string.Format("{0:#,0}", apb.Price), apb.CreateDate.ToString("HH:mm:ss dd/MM/yyyy"), SystemParam.Transaction_False); return(vnpOutput); } if (vnp.vnp_ResponseCode == SystemParam.vnp_CodeSucces) { if (apb != null && apb.Status == 0) { apb.CodeVNPay = vnp.vnp_TransactionNo; apb.KeyVNPay = vnp.vnp_SecureHash; cnn.SaveChanges(); vnpOutput.getVnpModel(vnp.vnp_TxnRef, string.Format("{0:#,0}", apb.Price), apb.CreateDate.ToString("HH:mm:ss dd/MM/yyyy"), SystemParam.Transaction_Succes); } else { vnpOutput.getVnpModel(vnp.vnp_TxnRef, string.Format("{0:#,0}", apb.Price), apb.CreateDate.ToString("HH:mm:ss dd/MM/yyyy"), SystemParam.Transaction_False); } } else { if (apb != null) { apb.CodeVNPay = vnp.vnp_TransactionNo; apb.KeyVNPay = vnp.vnp_SecureHash; cnn.SaveChanges(); } vnpOutput.getVnpModel(vnp.vnp_TxnRef, string.Format("{0:#,0}", apb.Price), apb.CreateDate.ToString("HH:mm:ss dd/MM/yyyy"), SystemParam.Transaction_False); } } catch { vnpOutput.getVnpModel(vnp.vnp_TxnRef, "", DateTime.Now.ToString("HH:mm:ss dd/MM/yyyy"), SystemParam.Transaction_False); } return(vnpOutput); }
public VnpViewModel vnp_return(string vnp_Amount, string vnp_BankCode, string vnp_BankTranNo, string vnp_CardType, string vnp_OrderInfo, string vnp_PayDate, string vnp_ResponseCode, string vnp_TmnCode, string vnp_TransactionNo, string vnp_TxnRef, string vnp_SecureHashType, string vnp_SecureHash) { VnpOutputModel vnp = new VnpOutputModel(); vnp.vnp_Amount = vnp_Amount; vnp.vnp_BankCode = vnp_BankCode; vnp.vnp_BankTranNo = vnp_BankTranNo; vnp.vnp_CardType = vnp_CardType; vnp.vnp_OrderInfo = vnp_OrderInfo; vnp.vnp_PayDate = vnp_PayDate; vnp.vnp_ResponseCode = vnp_ResponseCode; vnp.vnp_TmnCode = vnp_TmnCode; vnp.vnp_TransactionNo = vnp_TransactionNo; vnp.vnp_TxnRef = vnp_TxnRef; vnp.vnp_SecureHashType = vnp_SecureHashType; vnp.vnp_SecureHash = vnp_SecureHash; VnpViewModel output = vnpay.GetVnpReturn(vnp); return(output); }
public VNPayOutputModel GetVnpIpn(VnpOutputModel vnp) { VNPayOutputModel output = new VNPayOutputModel(); int appID = 0; try { try { appID = int.Parse(vnp.vnp_TxnRef); } catch { output = output.GetPayOutputModel("Order not found", vnp.vnp_TxnRef, vnp.vnp_TransactionNo, SystemParam.vnp_Return_Rawurl, "01"); return(output); } BuyPackageHistory apb = cnn.BuyPackageHistories.Find(int.Parse(vnp.vnp_TxnRef)); if (apb != null) { int money = 0; try { money = int.Parse(vnp.vnp_Amount) / 100; if (money != apb.Price) { output = output.GetPayOutputModel("Invalid amount", vnp.vnp_TxnRef, vnp.vnp_TransactionNo, "", "04"); return(output); } } catch { output = output.GetPayOutputModel("Invalid amount", vnp.vnp_TxnRef, vnp.vnp_TransactionNo, "", "04"); return(output); } if (vnp.vnp_TmnCode.Equals(SystemParam.vnp_TmnCode) && vnp.vnp_SecureHash.Equals(apb.KeyVNPay)) { if (vnp.vnp_ResponseCode == SystemParam.vnp_CodeSucces) { if (apb.Status == 0) { apb.Status = 1; cnn.SaveChanges(); PointBusiness pBus = new PointBusiness(); int point = pBus.CreateAddPointByWarranty(appID, apb.CustomerID, vnp.vnp_TransactionNo); NotifyBusiness noti = new NotifyBusiness(); string content = "Giao dịch thành công: \n + Mã đơn hàng qua VNPAY: " + vnp.vnp_TxnRef + "\n + Số tiền: " + string.Format("{0:#,0}", apb.Price) + " đ\n + Thời gian: " + DateTime.Now.ToString(SystemParam.CONVERT_DATETIME_HAVE_HOUR); noti.CreateNotiWhenBuyPackage(apb.CustomerID, "Giao dịch đã được thực hiện", content); output = output.GetPayOutputModel("Confirm Success", vnp.vnp_TxnRef, vnp.vnp_TransactionNo, "", vnp.vnp_ResponseCode); } else { output = output.GetPayOutputModel("Order already confirmed", vnp.vnp_TxnRef, vnp.vnp_TransactionNo, "", "02"); } } else { if (apb.Status == 0) { apb.Status = 2; cnn.SaveChanges(); output = output.GetPayOutputModel("Confirm Success", vnp.vnp_TxnRef, vnp.vnp_TransactionNo, SystemParam.vnp_Return_Rawurl, "00"); } else { output = output.GetPayOutputModel("Order already confirmed", vnp.vnp_TxnRef, vnp.vnp_TransactionNo, "", "02"); } } } else { output = output.GetPayOutputModel("Invalid signature", vnp.vnp_TxnRef, vnp.vnp_TransactionNo, SystemParam.vnp_Return_Rawurl, "97"); } } else { output = output.GetPayOutputModel("Order not found", vnp.vnp_TxnRef, vnp.vnp_TransactionNo, SystemParam.vnp_Return_Rawurl, "01"); } } catch { output = output.GetPayOutputModel("Unknow error", vnp.vnp_TxnRef, vnp.vnp_TransactionNo, SystemParam.vnp_Return_Rawurl, "99"); } return(output); }