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(); }
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(); } } }