PageRenderTime 106ms CodeModel.GetById 25ms RepoModel.GetById 6ms app.codeStats 0ms

/1/send.php

https://bitbucket.org/spivovartsev/citrus.ua
PHP | 225 lines | 178 code | 24 blank | 23 comment | 2 complexity | 21a00da537f0f89877baccfe85648b5c MD5 | raw file
Possible License(s): BSD-3-Clause
  1. <?php
  2. /**
  3. * @author admin
  4. * @copyright 2012
  5. */
  6. //include_once $_SERVER['DOCUMENT_ROOT'] . '/../library/obmen.php';
  7. //echo "111";
  8. include_once $_SERVER['DOCUMENT_ROOT'] . '/var/www/beta.citrus.ua/library/obmen.php';
  9. class SendDelta extends db {
  10. public function gen_xml($ORDER_ID) {
  11. $sql = 'select * FROM b_credit WHERE ORDER_ID = '.$ORDER_ID.'';
  12. $r = $this->sql($sql);
  13. $row = mysql_fetch_array($r);
  14. $sql2 = 'SELECT * FROM `b_sale_basket` WHERE ORDER_ID = '.$ORDER_ID.'';
  15. $r2 = $this->sql($sql2);
  16. $ss = 0;
  17. $qt = 0;
  18. while( $row2 = mysql_fetch_array($r2)){
  19. $ss += $row2["PRICE"];
  20. //$qt += $row2["QUANTITY"];
  21. $qt++;
  22. }
  23. $ss = (int) $ss;
  24. $ss=$ss*100;
  25. //$nds2 = ($ss/100)*20;
  26. $nds2 = ($ss/100)*20;
  27. $xml ='
  28. <?xml version="1.0" encoding="utf-8"?>
  29. <request>
  30. <type>APP_SEND_CONFIRMED</type>
  31. <code>'.$row["guid1"].'</code>
  32. <params>
  33. <application_brief>
  34. <app_info>
  35. <app-code>'.$row["guid2"].'</app-code>
  36. <app-date>'.$row["appdate"].'</app-date>
  37. <app-datetime-stamp>'.$row["datetime"].'</app-datetime-stamp>
  38. <app-status>CONFIRMED</app-status>
  39. </app_info>
  40. <loan_info>
  41. <product code="15333.001">
  42. <title>ИК 2,5% в месяц</title>
  43. <description>Кредит на всі групи товарів, визначені мережею. Початковий внесок від 0%.</description>
  44. <minTerm>2</minTerm>
  45. <maxTerm>36</maxTerm>
  46. <minAmount>30000</minAmount>
  47. <maxAmount>5000000</maxAmount>
  48. <minPrePay>0%</minPrePay>
  49. <maxPrePay>90%</maxPrePay>
  50. <firstFee>0%</firstFee>
  51. <monthFee>2.50%</monthFee>
  52. <intRate>0.01%</intRate>
  53. <insFee>0%</insFee>
  54. </product>
  55. <term>'.$row["kp"].'</term>
  56. <prePayment>'.$row["prepayment"].'00</prePayment>
  57. <netLoan>'.$row["netloan"].'00</netLoan>
  58. <firstFee>'.$row["firstfee2"].'00</firstFee>
  59. <principal>'.$row["principal"].'00</principal>
  60. <insFee>'.$row["firstfee2"].'00</insFee>
  61. <payment>'.$row["payment"].'00</payment>
  62. <total>'.$row["SUMM"].'00</total>
  63. <overpay>'.$row["overpay"].'00</overpay>
  64. </loan_info>
  65. <author_info>
  66. <user-tax-id>1234567890</user-tax-id>
  67. <user-login>rcf_citrus</user-login>
  68. <user-name>Цитрус Трейд, +380501231212</user-name>
  69. <point-code>38227766001</point-code>
  70. <point-title>Цитрус Трейд</point-title>
  71. <point-address>м.Одеса, пр.-кт Гагаріна, буд.25, офіс.451, Одеська обл.. Україна, 65039</point-address>
  72. <point-novat>false</point-novat>
  73. <point-email>shop@citrus.com.ua</point-email>
  74. <reg-code>38227766</reg-code>
  75. <partner-title>Цитрус Трейд</partner-title>
  76. <partner-email>shop@citrus.com.ua</partner-email>
  77. </author_info>
  78. <client_info>
  79. <first-name>'.iconv("Windows-1251", "UTF-8", $row["credit_f"]).'</first-name>
  80. <last-name>'.iconv("Windows-1251", "UTF-8", $row["credit_i"]).'</last-name>
  81. <fathers-name>'.iconv("Windows-1251", "UTF-8", $row["credit_o"]).'</fathers-name>
  82. <tax-id>'.$row["identification_code"].'</tax-id>
  83. <birthday>'.$row["birthday_first_date"].'.'.$row["birthday_second_date"].'.'.$row["birthday_last_date"].'</birthday>
  84. <passport>'.iconv("Windows-1251", "UTF-8", $row["passport_b"]).' '.$row["passport_number"].'</passport>
  85. <passport-date>'.$row["date_of_issue_first_date"].'.'.$row["date_of_issue_second_date"].'.'.$row["date_of_issue_last_date"].'</passport-date>
  86. <passport-org>'.iconv("Windows-1251", "UTF-8", $row["issued_passport"]).'</passport-org>
  87. <contact-phone>'.$row["home_phone"].'</contact-phone>
  88. </client_info>
  89. <bill_info>
  90. <billDate>'.$row["billdate"].'</billDate>
  91. <billNum>'.$row["billnum"].'</billNum>
  92. <billTotal>'.$ss.'</billTotal>
  93. <vat novat="false">'.$nds2.'</vat>
  94. <positions count="'.$qt.'">';
  95. $sql3 = 'SELECT * FROM `b_sale_basket` WHERE ORDER_ID = '.$ORDER_ID.'';
  96. $r3 = $this->sql($sql3);
  97. while( $row3 = mysql_fetch_array($r3)){
  98. $r3pr=$row3["PRICE"]*100;
  99. $xml .= '<bill_pos>
  100. <count>'.round($row3["QUANTITY"]).'</count>
  101. <unit-price>'.$r3pr.'</unit-price>
  102. <pos-price>'.$r3pr.'</pos-price>
  103. <category code="'.$row3[BANK_CODE].'">'.iconv("Windows-1251", "UTF-8", $row3["BANK_TITLE"]).'</category>
  104. <details>'.$row3["NAME"].'</details>
  105. </bill_pos>';
  106. }
  107. $xml .= '</positions></bill_info></application_brief></params></request>';
  108. return $xml;
  109. }
  110. public function send_kr($xml)
  111. {
  112. $xml2 = "xml=".urlencode($xml); // $xml должна содержать заранее подготовленный текст с XML-заявкой
  113. define('username','rcf_citrus'); // необходимо подставить предоставленный логин
  114. define('password','B45F67'); // необходимо подставить предоставленный пароль
  115. $hostname = 'rcf.deltabank.com.ua';
  116. //$ch = curl_init('https://'.username.":".password.'@'.$hostname.'/demo/process-request.asp');
  117. $ch = curl_init('https://'.username.":".password.'@'.$hostname.'/send/');
  118. curl_setopt ($ch, CURLOPT_HEADER, 1);
  119. curl_setopt ($ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/html; charset=utf-8"));
  120. curl_setopt ($ch, CURLOPT_POST, 1);
  121. curl_setopt ($ch, CURLOPT_POSTFIELDS, $xml2); // Передаем XML-Заявку.
  122. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  123. curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); // убрать комментарий, если сертификат не установлен
  124. curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); // убрать комментарий, если сертификат не установлен
  125. curl_setopt ($ch, CURLOPT_HTTPHEADER, Array('Expect:'));
  126. curl_exec ($ch); $result = curl_multi_getcontent ($ch);
  127. echo $result."<br/>";
  128. curl_close ($ch);
  129. return $result;
  130. }
  131. }
  132. set_time_limit(0);
  133. error_reporting(E_ALL);
  134. //setlocale(LC_ALL, "ru_RU");
  135. header("Cache-Control: no-store, no-cache, must-revalidate");
  136. header("Cache-Control: post-check=0, pre-check=0", false);
  137. header ("Content-type: text/html; charset=utf-8");
  138. //header ("Content-type: text/plain");
  139. $send = new SendDelta();
  140. require $_SERVER['DOCUMENT_ROOT'] . '/var/www/beta.citrus.ua/application/config/application.php';
  141. mysql_connect($dbHost, $dbUser, $dbPass);
  142. mysql_select_db($dbName);
  143. $sql7 = 'SELECT ID, ORDER_ID FROM `b_credit` WHERE (status=1)';
  144. $result7 = mysql_query($sql7);
  145. while ($r7 = mysql_fetch_array($result7))
  146. {
  147. echo $r7['ID']." - ".$r7['ORDER_ID']."<br />";
  148. $xml = $send->gen_xml($r7['ORDER_ID']);
  149. $xml2 = $xml;
  150. echo "$xml2";
  151. $send2 = $send->send_kr($xml2);
  152. echo $send2;
  153. echo "<p>".strpos($send2, "SUCCESS")."</p>";
  154. if (strpos($send2, "SUCCESS")>0)
  155. {
  156. $sql8 = "UPDATE `b_credit` set status=2 WHERE (ORDER_ID=".$r7['ORDER_ID'].")";
  157. mysql_query($sql8);
  158. echo "<p>".$sql8."</p>";
  159. $sql8 = "UPDATE `b_sale_order` set STATUS_ID='W' WHERE (ID=".$r7['ORDER_ID'].")";
  160. mysql_query($sql8);
  161. echo "<p>".$sql8."</p>";
  162. }
  163. elseif (strpos($send2, "FAILED")>0)
  164. {
  165. $str1=$send2;
  166. $p1=strpos($str1, "<code>");
  167. $str1=substr($str1,$p1+6);
  168. $p2=strpos($str1, "</code>");
  169. $str1=substr($str1,0,$p2);
  170. $bank_err=$str1."<br />";
  171. $str1=$send2;
  172. $p1=strpos($str1, "<message>");
  173. $str1=substr($str1,$p1+9);
  174. $p2=strpos($str1, "</message>");
  175. $str1=substr($str1,0,$p2);
  176. $bank_err.=$str1;
  177. $sql8 = "UPDATE `b_credit` set status=5 WHERE (ORDER_ID=".$r7['ORDER_ID'].")";
  178. mysql_query($sql8);
  179. echo "<p>".$sql8."</p>";
  180. $sql8 = "UPDATE `b_credit` set bank_err='".$bank_err."' WHERE (ORDER_ID=".$r7['ORDER_ID'].")";
  181. mysql_query($sql8);
  182. echo "<p>".$sql8."</p>";
  183. $sql8 = "UPDATE `b_sale_order` set STATUS_ID='E' WHERE (ID=".$r7['ORDER_ID'].")";
  184. mysql_query($sql8);
  185. echo "<p>".$sql8."</p>";
  186. }
  187. sleep(1);
  188. }
  189. /*
  190. $db = mysql_connect('localhost', 'citrus_store', 'vSpYAxRujDfNtneX11a');
  191. mysql_select_db('citrus_store', $db);
  192. $sql="SELECT * FROM b_credit_ts WHERE (ID=2)";
  193. $result = mysql_query($sql, $db);
  194. while ($r = mysql_fetch_array($result))
  195. {
  196. $st=$r['st'];
  197. }
  198. $st+=10;
  199. $sql="UPDATE b_credit_ts set st='".$st."' WHERE (ID=2)";
  200. mysql_query($sql, $db);*/
  201. ?>