Пример #1
0
    public RefundData getRefund(string payment_id, string payment_date, string payment_time)
    {
        RefundData refund_data = new RefundData();

        string        sql       = "Select * From REFUND_DATA Where PAYMENT_ID='" + payment_id + "' And PAYMENT_DATE='" + payment_date + "' And PAYMENT_TIME='" + payment_time + "'";
        ConnectDB     db        = new ConnectDB();
        SqlDataSource oracleObj = db.ConnectionOracle();

        try
        {
            oracleObj.SelectCommand = sql;
            DataView allData = (DataView)oracleObj.Select(DataSourceSelectArguments.Empty);
            foreach (DataRowView rowData in allData)
            {
                refund_data.Academic_Year = rowData["ACADEMIC_YEAR"].ToString();
                refund_data.Semester      = rowData["SEMESTER"].ToString();
                refund_data.Payment_ID    = rowData["PAYMENT_ID"].ToString();
                refund_data.Payment_Date  = rowData["PAYMENT_DATE"].ToString();
                refund_data.Payment_Time  = rowData["PAYMENT_TIME"].ToString();
                refund_data.Student_ID    = rowData["STUDENT_ID"].ToString();
                refund_data.Nation_ID     = rowData["NATION_ID"].ToString();
                refund_data.Refund_Amount = Convert.ToInt32(rowData["REFUND_AMOUNT"].ToString());
                refund_data.Refund_Date   = rowData["REFUND_DATE"].ToString();
                refund_data.Refund_Time   = rowData["REFUND_TIME"].ToString();
                refund_data.Refund_By     = rowData["REFUND_BY"].ToString();
            }
        }
        catch
        {
            HttpContext.Current.Session["response"] = "Unit Test:Refund:getRefund" + " ไม่สามารถดำเนินการได้";
            HttpContext.Current.Response.Redirect("err_response.aspx");
        }

        return(refund_data);
    }
Пример #2
0
    public string insertRefund(RefundData refund_data)
    {
        string        response  = "";
        ConnectDB     db        = new ConnectDB();
        SqlDataSource oracleObj = db.ConnectionOracle();
        string        sql       = "Insert Into Refund_Data(ACADEMIC_YEAR,SEMESTER,PAYMENT_ID,PAYMENT_DATE,PAYMENT_TIME,STUDENT_ID,NATION_ID,REFUND_AMOUNT,REFUND_DATE,REFUND_TIME,REFUND_BY) Values('" + refund_data.Academic_Year + "','" + refund_data.Semester + "','" + refund_data.Payment_ID + "','" + refund_data.Payment_Date + "','" + refund_data.Payment_Time + "','" + refund_data.Student_ID + "','" + refund_data.Nation_ID + "','" + refund_data.Refund_Amount + "','" + refund_data.Refund_Date + "','" + refund_data.Refund_Time + "','" + refund_data.Refund_By + "')";

        try
        {
            oracleObj.InsertCommand = sql;
            if (oracleObj.Insert() == 1)
            {
                response = "OK";
            }
        }
        catch
        {
            HttpContext.Current.Session["response"] = "Unit Test:Student:insertStudentInformation" + " ไม่สามารถดำเนินการได้";
            HttpContext.Current.Response.Redirect("err_response.aspx");
        }

        return(response);
    }
Пример #3
0
        public RefundResponse Refund(string originalPaymentReference, double amount, string message, string refundCallbackUrl)
        {
            try
            {
                var requestData = new RefundData()
                {
                    originalPaymentReference = originalPaymentReference,
                    callbackUrl = refundCallbackUrl,
                    payerAlias  = _payeeAlias,
                    amount      = amount.ToString(),
                    currency    = "SEK",
                    message     = message
                };

                HttpClientHandler handler;
                HttpClient        client;
                PrepareHttpClientAndHandler(out handler, out client);

                var httpRequestMessage = new HttpRequestMessage
                {
                    Method     = HttpMethod.Post,
                    RequestUri = new Uri(_baseAPIUrl + "/swish-cpcapi/api/v1/refunds"),
                    Content    = new StringContent(JsonConvert.SerializeObject(requestData), Encoding.UTF8, "application/json")
                };

                var response = client.SendAsync(httpRequestMessage).Result;

                string errorMessage = string.Empty;
                string Location     = string.Empty;

                if (response.IsSuccessStatusCode)
                {
                    var headers = response.Headers.ToList();

                    if (headers.Any(x => x.Key == "Location"))
                    {
                        Location = response.Headers.GetValues("Location").FirstOrDefault();
                    }
                }
                else
                {
                    var readAsStringAsync = response.Content.ReadAsStringAsync();
                    errorMessage = readAsStringAsync.Result;
                }

                client.Dispose();
                handler.Dispose();

                return(new RefundResponse()
                {
                    Error = errorMessage,
                    Location = Location
                });
            }
            catch (Exception ex)
            {
                return(new RefundResponse()
                {
                    Error = ex.ToString(),
                    Location = ""
                });
            }
        }
Пример #4
0
 public static Task <Dictionary <string, object> > Refund(RefundData refundData)
 {
     return(Refund(refundData.AsParams()));
 }
Пример #5
0
        public RefundResponse Refund(string originalPaymentReference, double amount, string message, string refundCallbackUrl)
        {
            try
            {
                var refundData = new RefundData()
                {
                    originalPaymentReference = originalPaymentReference,
                    callbackUrl = refundCallbackUrl,
                    payerAlias  = _payeeAlias,
                    amount      = amount.ToString(),
                    currency    = "SEK",
                    message     = message
                };

                // Create a RestSharp RestClient objhect with the base URL
                var client = new RestClient(_baseAPIUrl);

                // Create a request object with the path to the payment requests
                var request = new RestRequest("swish-cpcapi/api/v1/refunds");

                // Create up a client certificate collection and import the certificate to it
                X509Certificate2Collection clientCertificates = new X509Certificate2Collection();
                clientCertificates.Import(_certDataBytes, _certificatePassword, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet);

                // Add client certificate collection to the RestClient
                client.ClientCertificates = clientCertificates;

                // Add payment request data
                request.AddJsonBody(refundData);

                var response = client.Post(request);
                var content  = response.Content;

                // "[{\"errorCode\":\"PA01\",\"errorMessage\":null,\"additionalInformation\":null}]"

                if (!response.IsSuccessful)
                {
                    return(new RefundResponse()
                    {
                        Error = content,
                        Location = ""
                    });
                }
                else
                {
                    string location = response.Headers.ToList().Find(x => x.Name == "Location").Value.ToString();

                    return(new RefundResponse()
                    {
                        Error = "",
                        Location = location
                    });
                }
            }
            catch (Exception ex)
            {
                return(new RefundResponse()
                {
                    Error = ex.ToString(),
                    Location = ""
                });
            }
        }
        public async Task Index()
        {
            try
            {
                var data = new Dictionary <string, object>();
                Request.Form.CopyTo(data);

                var amount      = long.Parse(Request.Form.Get("amount"));
                var zptransid   = Request.Form.Get("zptransid");
                var description = Request.Form.Get("description");

                var refundData = new RefundData(amount, zptransid, description);
                var result     = await ZaloPayHelper.Refund(refundData);

                var returncode = int.Parse(result["returncode"].ToString());

                if (returncode >= 1)
                {
                    while (true)
                    {
                        var refundStatus = await ZaloPayHelper.GetRefundStatus(refundData.Mrefundid);

                        var c = int.Parse(refundStatus["returncode"].ToString());

                        if (c < 2)
                        {
                            if (c == 1)
                            {
                                using (var db = new ZaloPayDemoContext())
                                {
                                    db.Refunds.Add(new Models.Refund
                                    {
                                        Amount    = refundData.Amount,
                                        Zptransid = refundData.Zptransid,
                                        Mrefundid = refundData.Mrefundid
                                    });

                                    db.SaveChanges();
                                }
                            }

                            Session["refundResult"] = refundStatus;

                            break;
                        }

                        System.Threading.Thread.Sleep(1000);
                    }
                }
                else
                {
                    Session["refundResult"] = result;
                }
            } catch (Exception ex)
            {
                var result = new Dictionary <string, object>();
                result["returncode"]    = -1;
                result["returnmessage"] = "Exception: " + ex.Message;

                Session["refundResult"] = result;
            }

            Response.Redirect("/History");
        }