Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.53 KB | None | 0 0
  1. function paymentdata() {
  2. if ($_SERVER['REQUEST_METHOD']=='POST') {
  3.  
  4. $ttf=json_encode($_POST);
  5. $this->db->query("INSERT INTO PayTest (Request) VALUES ('$ttf')");
  6.  
  7. if (@$_POST['RC']=='00' && intval(@$_POST['TRTYPE'])==0 && !empty($_POST['ORDER'])) {
  8. require_once realpath('public/payment').'/'.'Transaction.php';
  9.  
  10. $ts=date('YmdHis');
  11. $nonce=Transaction::set_nonce();
  12. $req=array(
  13. 'TRTYPE'=>21,
  14. 'TERMINAL'=>$_POST['TERMINAL'],
  15. 'ORDER'=>$_POST['ORDER'],
  16. 'CURRENCY'=>$_POST['CURRENCY'],
  17. 'AMOUNT'=>$_POST['AMOUNT'],
  18. 'TIMESTAMP'=>$ts,
  19. 'NONCE'=>$nonce,
  20. 'RRN'=>$_POST['RRN'],
  21. 'INT_REF'=>$_POST['INT_REF']
  22. );
  23.  
  24. $bins=array(676633,557484,557802,518894,558277,412043,417751,402811,402812,413061);
  25. $r_bin=0;
  26. $binfound=0;
  27. if (!empty($_POST['BIN'])) {
  28. $r_bin=intval($_POST['BIN']);
  29. if (in_array($r_bin,$bins)) $binfound=1;
  30. }
  31.  
  32. $order=intval($_POST['ORDER'])-900000000;
  33.  
  34. $rsaPrivKey = Transaction::_get_key(realpath('public/payment').'/'."ssl/private/privkey.pem");
  35. $rsaPubKey = Transaction::get_key(realpath('public/payment').'/'."ssl/cert.pem");
  36.  
  37. $rsaKeyLength = Transaction::get_key_length($rsaPrivKey);
  38.  
  39. $hashedData = Transaction::_create_hased_data( $rsaKeyLength , $req );
  40. $macsource = Transaction::_generate_mac_source( $req );
  41. $p_sign = Transaction::_encrypt_p_sign( $rsaPrivKey , $hashedData );
  42.  
  43. $fieldstring = 'ORDER='.$_POST['ORDER'].'&TERMINAL='.$_POST['TERMINAL'].'&RRN='.$_POST['RRN'].'&INT_REF='.$_POST['INT_REF'].'&CURRENCY='.$_POST['CURRENCY'].'&AMOUNT='.$_POST['AMOUNT'].'&TRTYPE=21&TIMESTAMP='.$ts.'&NONCE='.$nonce.'&P_SIGN='.$p_sign;
  44.  
  45. $ch = curl_init();
  46. curl_setopt($ch,CURLOPT_URL,'https://egateway.micb.md/cgi-bin/cgi_link?');
  47. curl_setopt($ch,CURLOPT_POSTFIELDS,$fieldstring);
  48. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  49. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  50. $res = curl_exec($ch);
  51. curl_close($ch);
  52. }
  53.  
  54. if (@$_POST['RC']!=='00' && intval(@$_POST['TRTYPE'])==0 && !empty($_POST['ORDER'])) {
  55. $bank_nr_order = intval($_POST['ORDER']);
  56. $this->db->query("INSERT INTO PayTest (Request) VALUES ('При оплате заказа номер $bank_nr_order произошла ошибка.')");
  57. }
  58.  
  59. if (@$_POST['RC']=='00' && intval(@$_POST['TRTYPE'])==21) {
  60. $order=intval($_POST['ORDER'])-900000000;
  61. $bank_nr_order = intval($_POST['ORDER']);
  62. $this->db->query("INSERT INTO PayTest (Request) VALUES ('Заказ номер $bank_nr_order успешно оплачен')");
  63.  
  64. $upd = array(
  65. "Status" => 0,
  66. "transaction_id" => $this->input->post("INT_REF", true),
  67. "rrn_id" => $this->input->post("RRN", true),
  68. );
  69. $this->orders_model->update_order($order, $upd);
  70.  
  71. $q=$this->db->query("SELECT * FROM UserOrder WHERE ID=".intval($order));
  72. $oarr=$q->row_array();
  73.  
  74. $text_a=admletter($order);
  75. $text_u=userletter($order);
  76.  
  77. if (!empty($oarr['email'])) {
  78. $this->email->from('no-reply@andys.md', $_SERVER['HTTP_HOST']);
  79. $this->email->to($oarr['email']);
  80. $this->email->reply_to('no-reply@andys.md');
  81. $this->email->subject('Comanda de la '.$_SERVER['HTTP_HOST']);
  82. $this->email->message($text_u);
  83. $this->email->send();
  84. }
  85.  
  86. $admail=USERORDERMAIL;
  87. $amq1=$this->db->query("SELECT Country.Email
  88. FROM UserOrder
  89. INNER JOIN Country ON Country.ID=UserOrder.CityID
  90. WHERE UserOrder.ID=$order");
  91. if ($amq1->num_rows()>0) {
  92. $amarr=$amq1->row_array();
  93. if (!empty($amarr['Email'])) $admail=$amarr['Email'];
  94. }
  95.  
  96. $this->email->from('no-reply@andys.md', $_SERVER['HTTP_HOST']);
  97. $this->email->to($admail);
  98. $this->email->reply_to('no-reply@andys.md');
  99. $this->email->subject('Comanda de la '.$_SERVER['HTTP_HOST']);
  100. $this->email->message($text_a);
  101. $this->email->send();
  102. }
  103.  
  104. if (@$_POST['RC']!=='00' && intval(@$_POST['TRTYPE'])==21) {
  105. $bank_nr_order = intval($_POST['ORDER']);
  106. $this->db->query("INSERT INTO PayTest (Request) VALUES ('При оплате заказа номер $bank_nr_order произошла ошибка.')");
  107. }
  108. } else {
  109. $this->db->query("INSERT INTO PayTest (Request) VALUES ('Banca nu trimmite post')");
  110. }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement