Beispiel #1
0
        private void button2_Click(object sender, EventArgs e)
        {
            Common     c      = new Common();
            IPEndPoint iep    = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1234);
            Socket     client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            client.Connect(iep);
            string message = "HUYDONHANG-" + maDH + "-" + maKH + "-" + soTien;

            c.send(message, ref client);
            client.Close();
            KetQua form = new KetQua("Khách hàng từ chối thanh toán, đơn hàng sẽ được hủy.");

            form.Show();
            this.Hide();
            this.Close();
        }
Beispiel #2
0
        private void button3_Click(object sender, EventArgs e)
        {
            bool       verify;
            string     s;
            Common     c      = new Common();
            IPEndPoint iep    = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1234);
            Socket     client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            client.Connect(iep);

            //tạo init request gửi tới merchant
            InitiateRequest initiateRequest = new InitiateRequest();

            c.send(initiateRequest.ToMessage(), ref client);
            //nhận init response từ merchant
            string receiveMessage = c.receive(ref client);

            string[] initRES = receiveMessage.Split('-');
            merchantCertificate = new X509Certificate2(c.StringToByteArray(initRES[2]));
            gatewayCertificate  = new X509Certificate2(c.StringToByteArray(initRES[3]));
            if (c.VerifyCertificate(caCertificate, merchantCertificate) == false || c.VerifyCertificate(caCertificate, gatewayCertificate) == false)//xác thực chứng chỉ nhận được
            {
                s = "Xác thực kết nối thất bại";
                openThongBaoForm(s);
            }
            else
            {
                merchantPublicKey = merchantCertificate.GetRSAPublicKey().ToXmlString(false);
                gatewayPublicKey  = gatewayCertificate.GetRSAPublicKey().ToXmlString(false);
                verify            = c.Verify(merchantPublicKey, initRES[1], initRES[0]);
                if (verify == false)
                {
                    s = "Xác thực kết nối thất bại";
                    openThongBaoForm(s);
                }
                else
                {
                    //tạo purchase request
                    string[]            initREQValue     = initRES[0].Split(':');
                    InitiateResponse    initiateResponse = new InitiateResponse(initREQValue[0], initREQValue[1], initREQValue[2]);
                    OrderInfomation     oi = new OrderInfomation(maDH, maKH, DateTime.Now.ToString("ddMMyyyy"), initiateResponse.getTransID(), initiateResponse.getBrandID(), soTien);
                    PaymentInstructions pi = new PaymentInstructions(cardNumber, CVV, dateValid, soTien, initiateResponse.getTransID(), initiateResponse.getBrandID());
                    PurchaseRequest     purchaseRequest = new PurchaseRequest(oi.OIToString(), pi.PIToString(), customerPrivateKey, gatewayPublicKey, c.ByteArrayToString(customerCertificate.GetRawCertData()));
                    c.send(purchaseRequest.ToMessage(), ref client);
                    //nhận purchase response
                    receiveMessage = c.receive(ref client);
                    string[]         splitRES         = receiveMessage.Split('-');
                    PurchaseResponse purchaseResponse = new PurchaseResponse(splitRES[0], splitRES[1], splitRES[2]);
                    merchantCertificate = new X509Certificate2(c.StringToByteArray(purchaseResponse.getCertificate()));
                    if (c.VerifyCertificate(caCertificate, merchantCertificate) == false)//xác thực chứng chỉ từ purchase response
                    {
                        s = "Xác thực kết nối thất bại";
                        openThongBaoForm(s);
                    }
                    else
                    {
                        if (purchaseResponse.verify() == false)
                        {
                            s = "Xác thực kết nối thất bại";
                            openThongBaoForm(s);
                        }
                        else
                        {
                            string[] splitPurchase = purchaseResponse.getMessage().Split(':');//message = transid:RRPID:maKQ:KQ
                            if (splitPurchase[2].CompareTo("1") == 0)
                            {
                                KetQua form = new KetQua("Thanh toán thành công");
                                form.Show();
                                this.Hide();
                                this.Close();
                            }
                            else if (splitPurchase[2].CompareTo("2") == 0)
                            {
                                s = "Thông tin tài khoản không đúng";
                                openThongBaoForm(s);
                            }
                            else
                            {
                                s = "Xác thực kết nối thất bại";
                                openThongBaoForm(s);
                            }
                        }
                    }

                    client.Close();
                }
            }
        }