Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.24 KB | None | 0 0
  1. bool(false)
  2. 1 exception(s):
  3. Exception #0 (Exception): Warning: Invalid argument supplied for foreach() in /var/www/html/primary/vendor/veriteworks/paygent-connect/src/PaygentConnect/Response/Parser.php on line 27
  4.  
  5. Exception #0 (Exception): Warning: Invalid argument supplied for foreach() in /var/www/html/primary/vendor/veriteworks/paygent-connect/src/PaygentConnect/Response/Parser.php on line 27
  6. #0 /var/www/html/primary/vendor/veriteworks/paygent-connect/src/PaygentConnect/Response/Parser.php(27): MagentoFrameworkAppErrorHandler->handler(2, 'Invalid argumen...', '/var/www/html/p...', 27, Array)
  7. #1 /var/www/html/primary/vendor/veriteworks/paygent-connect/src/PaygentConnect/Client/Curl.php(109): PaygentConnectResponseParser->parse()
  8. #2 /var/www/html/primary/vendor/veriteworks/paygent-connect/src/PaygentConnect/PaygentConnect.php(93): PaygentConnectClientCurl->execute()
  9. #3 /var/www/html/primary/vendor/veriteworks/paygent/Model/Card/Lists.php(66): PaygentConnectPaygentConnect->post()
  10. #4 /var/www/html/primary/vendor/veriteworks/paygent/Model/Config/CcProvider.php(174): VeriteworksPaygentModelCardLists->loadRegisteredCards()
  11. #5 /var/www/html/primary/vendor/veriteworks/paygent/Model/Config/CcProvider.php(78): VeriteworksPaygentModelConfigCcProvider->loadCardInfo()
  12. #6 /var/www/html/primary/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(111): VeriteworksPaygentModelConfigCcProvider->__construct(Object(MagentoPaymentModelCcConfig), Object(MagentoPaymentHelperDataInterceptor), Object(VeriteworksPaygentGatewayConfigCc), Object(VeriteworksPaygentHelperData), Object(VeriteworksPaygentModelSourcePaymentClass), Object(VeriteworksPaygentModelSourceSplitCount), Object(VeriteworksPaygentModelCardLists))
  13. #7 /var/www/html/primary/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(66): MagentoFrameworkObjectManagerFactoryAbstractFactory->createObject('Veriteworks\Pay...', Array)
  14. #8 /var/www/html/primary/vendor/magento/framework/ObjectManager/ObjectManager.php(70): MagentoFrameworkObjectManagerFactoryDynamicDeveloper->create('Veriteworks\Pay...')
  15. #9 /var/www/html/primary/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(180): MagentoFrameworkObjectManagerObjectManager->get('Veriteworks\Pay...')
  16. #10 /var/www/html/primary/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(156): MagentoFrameworkObjectManagerFactoryAbstractFactory->parseArray(Array)
  17. #11 /var/www/html/primary/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(230): MagentoFrameworkObjectManagerFactoryAbstractFactory->resolveArgument(Array, NULL, NULL, 'configProviders', 'Magento\Checkou...')
  18. #12 /var/www/html/primary/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(34): MagentoFrameworkObjectManagerFactoryAbstractFactory->resolveArgumentsInRuntime('Magento\Checkou...', Array, Array)
  19. #13 /var/www/html/primary/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(59): MagentoFrameworkObjectManagerFactoryDynamicDeveloper->_resolveArguments('Magento\Checkou...', Array, Array)
  20. #14 /var/www/html/primary/vendor/magento/framework/ObjectManager/ObjectManager.php(70): MagentoFrameworkObjectManagerFactoryDynamicDeveloper->create('Magento\Checkou...')
  21. #15 /var/www/html/primary/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(144): MagentoFrameworkObjectManagerObjectManager->get('Magento\Checkou...')
  22. #16 /var/www/html/primary/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(230): MagentoFrameworkObjectManagerFactoryAbstractFactory->resolveArgument(Array, 'Magento\Checkou...', NULL, 'configProvider', 'Magento\Checkou...')
  23. #17 /var/www/html/primary/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(34): MagentoFrameworkObjectManagerFactoryAbstractFactory->resolveArgumentsInRuntime('Magento\Checkou...', Array, Array)
  24. #18 /var/www/html/primary/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(59): MagentoFrameworkObjectManagerFactoryDynamicDeveloper->_resolveArguments('Magento\Checkou...', Array, Array)
  25. #19 /var/www/html/primary/vendor/magento/framework/ObjectManager/ObjectManager.php(56): MagentoFrameworkObjectManagerFactoryDynamicDeveloper->create('Magento\Checkou...', Array)
  26. #20 /var/www/html/primary/vendor/magento/framework/View/Element/BlockFactory.php(45): MagentoFrameworkObjectManagerObjectManager->create('Magento\Checkou...', Array)
  27. #21 /var/www/html/primary/vendor/magento/framework/View/Layout/Generator/Block.php(269): MagentoFrameworkViewElementBlockFactory->createBlock('Magento\Checkou...', Array)
  28. #22 /var/www/html/primary/vendor/magento/framework/View/Layout/Generator/Block.php(249): MagentoFrameworkViewLayoutGeneratorBlock->getBlockInstance('Magento\Checkou...', Array)
  29. #23 /var/www/html/primary/vendor/magento/framework/View/Layout/Generator/Block.php(227): MagentoFrameworkViewLayoutGeneratorBlock->createBlock('Magento\Checkou...', 'checkout.cart.s...', Array)
  30. #24 /var/www/html/primary/vendor/magento/framework/View/Layout/Generator/Block.php(135): MagentoFrameworkViewLayoutGeneratorBlock->generateBlock(Object(MagentoFrameworkViewLayoutScheduledStructure), Object(MagentoFrameworkViewLayoutDataStructure), 'checkout.cart.s...')
  31. #25 /var/www/html/primary/vendor/magento/framework/View/Layout/GeneratorPool.php(80): MagentoFrameworkViewLayoutGeneratorBlock->process(Object(MagentoFrameworkViewLayoutReaderContext), Object(MagentoFrameworkViewLayoutGeneratorContext))
  32. #26 /var/www/html/primary/vendor/magento/framework/View/Layout.php(343): MagentoFrameworkViewLayoutGeneratorPool->process(Object(MagentoFrameworkViewLayoutReaderContext), Object(MagentoFrameworkViewLayoutGeneratorContext))
  33. #27 /var/www/html/primary/generated/code/Magento/Framework/View/Layout/Interceptor.php(89): MagentoFrameworkViewLayout->generateElements()
  34. #28 /var/www/html/primary/vendor/magento/framework/View/Layout/Builder.php(129): MagentoFrameworkViewLayoutInterceptor->generateElements()
  35. #29 /var/www/html/primary/vendor/magento/framework/View/Page/Builder.php(55): MagentoFrameworkViewLayoutBuilder->generateLayoutBlocks()
  36. #30 /var/www/html/primary/vendor/magento/framework/View/Layout/Builder.php(65): MagentoFrameworkViewPageBuilder->generateLayoutBlocks()
  37. #31 /var/www/html/primary/vendor/magento/framework/View/Page/Config.php(208): MagentoFrameworkViewLayoutBuilder->build()
  38. #32 /var/www/html/primary/vendor/magento/framework/View/Page/Config.php(228): MagentoFrameworkViewPageConfig->build()
  39. #33 /var/www/html/primary/vendor/magento/module-checkout/Controller/Cart/Index.php(55): MagentoFrameworkViewPageConfig->getTitle()
  40. #34 /var/www/html/primary/vendor/magento/framework/Interception/Interceptor.php(58): MagentoCheckoutControllerCartIndex->execute()
  41. #35 /var/www/html/primary/vendor/magento/framework/Interception/Interceptor.php(138): MagentoCheckoutControllerCartIndexInterceptor->___callParent('execute', Array)
  42. #36 /var/www/html/primary/vendor/magento/framework/Interception/Interceptor.php(153): MagentoCheckoutControllerCartIndexInterceptor->MagentoFrameworkInterception{closure}()
  43. #37 /var/www/html/primary/generated/code/Magento/Checkout/Controller/Cart/Index/Interceptor.php(26): MagentoCheckoutControllerCartIndexInterceptor->___callPlugins('execute', Array, Array)
  44. #38 /var/www/html/primary/vendor/magento/framework/App/Action/Action.php(107): MagentoCheckoutControllerCartIndexInterceptor->execute()
  45. #39 /var/www/html/primary/vendor/magento/framework/Interception/Interceptor.php(58): MagentoFrameworkAppActionAction->dispatch(Object(MagentoFrameworkAppRequestHttp))
  46. #40 /var/www/html/primary/vendor/magento/framework/Interception/Interceptor.php(138): MagentoCheckoutControllerCartIndexInterceptor->___callParent('dispatch', Array)
  47. #41 /var/www/html/primary/vendor/magento/framework/Interception/Interceptor.php(153): MagentoCheckoutControllerCartIndexInterceptor->MagentoFrameworkInterception{closure}(Object(MagentoFrameworkAppRequestHttp))
  48. #42 /var/www/html/primary/generated/code/Magento/Checkout/Controller/Cart/Index/Interceptor.php(39): MagentoCheckoutControllerCartIndexInterceptor->___callPlugins('dispatch', Array, Array)
  49. #43 /var/www/html/primary/vendor/magento/framework/App/FrontController.php(55): MagentoCheckoutControllerCartIndexInterceptor->dispatch(Object(MagentoFrameworkAppRequestHttp))
  50. #44 /var/www/html/primary/vendor/magento/framework/Interception/Interceptor.php(58): MagentoFrameworkAppFrontController->dispatch(Object(MagentoFrameworkAppRequestHttp))
  51. #45 /var/www/html/primary/vendor/magento/framework/Interception/Interceptor.php(138): MagentoFrameworkAppFrontControllerInterceptor->___callParent('dispatch', Array)
  52. #46 /var/www/html/primary/vendor/magento/module-store/App/FrontController/Plugin/RequestPreprocessor.php(94): MagentoFrameworkAppFrontControllerInterceptor->MagentoFrameworkInterception{closure}(Object(MagentoFrameworkAppRequestHttp))
  53. #47 /var/www/html/primary/vendor/magento/framework/Interception/Interceptor.php(135): MagentoStoreAppFrontControllerPluginRequestPreprocessor->aroundDispatch(Object(MagentoFrameworkAppFrontControllerInterceptor), Object(Closure), Object(MagentoFrameworkAppRequestHttp))
  54. #48 /var/www/html/primary/vendor/magento/module-page-cache/Model/App/FrontController/BuiltinPlugin.php(69): MagentoFrameworkAppFrontControllerInterceptor->MagentoFrameworkInterception{closure}(Object(MagentoFrameworkAppRequestHttp))
  55. #49 /var/www/html/primary/vendor/magento/framework/Interception/Interceptor.php(135): MagentoPageCacheModelAppFrontControllerBuiltinPlugin->aroundDispatch(Object(MagentoFrameworkAppFrontControllerInterceptor), Object(Closure), Object(MagentoFrameworkAppRequestHttp))
  56. #50 /var/www/html/primary/app/code/Infortis/Cgen/Plugin/Magento/Framework/App/FrontController.php(32): MagentoFrameworkAppFrontControllerInterceptor->MagentoFrameworkInterception{closure}(Object(MagentoFrameworkAppRequestHttp))
  57. #51 /var/www/html/primary/vendor/magento/framework/Interception/Interceptor.php(135): InfortisCgenPluginMagentoFrameworkAppFrontController->aroundDispatch(Object(MagentoFrameworkAppFrontControllerInterceptor), Object(Closure), Object(MagentoFrameworkAppRequestHttp))
  58. #52 /var/www/html/primary/vendor/magento/framework/Interception/Interceptor.php(153): MagentoFrameworkAppFrontControllerInterceptor->MagentoFrameworkInterception{closure}(Object(MagentoFrameworkAppRequestHttp))
  59. #53 /var/www/html/primary/generated/code/Magento/Framework/App/FrontController/Interceptor.php(26): MagentoFrameworkAppFrontControllerInterceptor->___callPlugins('dispatch', Array, NULL)
  60. #54 /var/www/html/primary/vendor/magento/framework/App/Http.php(135): MagentoFrameworkAppFrontControllerInterceptor->dispatch(Object(MagentoFrameworkAppRequestHttp))
  61. #55 /var/www/html/primary/generated/code/Magento/Framework/App/Http/Interceptor.php(24): MagentoFrameworkAppHttp->launch()
  62. #56 /var/www/html/primary/vendor/magento/framework/App/Bootstrap.php(257): MagentoFrameworkAppHttpInterceptor->launch()
  63. #57 /var/www/html/primary/pub/index.php(37): MagentoFrameworkAppBootstrap->run(Object(MagentoFrameworkAppHttpInterceptor))
  64. #58 {main}
  65.  
  66. namespace PaygentConnectClient;
  67.  
  68. use PaygentConnectResponseValidator;
  69. use PaygentConnectConfigConfig;
  70. use PaygentConnectResponseParser;
  71.  
  72. class Curl
  73. {
  74. /**
  75. *
  76. */
  77. const KEYSTORE_PASS = "changeit";
  78. /**
  79. * @var resource
  80. */
  81. private $client;
  82. /**
  83. * @var array
  84. */
  85. private $options = [];
  86. /**
  87. * @var string
  88. */
  89. private $data = '';
  90.  
  91. private $config;
  92.  
  93. private $result;
  94.  
  95.  
  96. /**
  97. * Curl constructor.
  98. * @param Config $config
  99. * @param Config $const
  100. * @param array $options
  101. */
  102. public function __construct(Config $config, $url, $options)
  103. {
  104. $this->config = $config;
  105. $this->options = $options;
  106. $result = true;
  107.  
  108. $this->client = curl_init($url);
  109.  
  110. $result = curl_setopt($this->client, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0 );
  111. $result = curl_setopt($this->client, CURLOPT_RETURNTRANSFER, true);
  112. $result = curl_setopt($this->client, CURLOPT_POST, true);
  113. $result = curl_setopt($this->client, CURLOPT_HEADER, true);
  114. $result = curl_setopt($this->client, CURLOPT_SSL_VERIFYHOST, false);
  115.  
  116. //if(!$this->options['noCert']) {
  117. $result = curl_setopt($this->client, CURLOPT_SSLCERT, $this->options['clientCertificatePath']);
  118. $result = curl_setopt($this->client, CURLOPT_SSLKEYPASSWD, self::KEYSTORE_PASS);
  119. //}
  120.  
  121. //if(!$this->options['noCaCert']) {
  122. // $result = curl_setopt($this->client, CURLOPT_SSL_VERIFYPEER, false);
  123. //} else {
  124. $result = curl_setopt($this->client, CURLOPT_SSL_VERIFYPEER, true);
  125. $result = curl_setopt($this->client, CURLOPT_CAINFO, $this->options['caCertificatePath']);
  126. //}
  127.  
  128. $result = curl_setopt($this->client, CURLOPT_TIMEOUT, $this->options['timeout']);
  129. $result = curl_setopt($this->client, CURLOPT_CONNECTTIMEOUT, $this->options['proxyTimeout']);
  130.  
  131. if(!$result) {
  132. throw new BadFunctionCallException('Connection client initialize error.');
  133. }
  134. }
  135.  
  136. /**
  137. * @param $data
  138. * @return $this
  139. */
  140. public function setRequest($data)
  141. {
  142. $this->data = $data;
  143. return $this;
  144. }
  145.  
  146. /**
  147. * @return mixed
  148. */
  149. public function execute()
  150. {
  151. $query = $this->data;
  152. $length = strlen($query);
  153.  
  154. $header =[
  155. $this->options['contentType'],
  156. $this->options['encoding'],
  157. $this->options['contentLength'] . ': ' . $length,
  158. $this->options['userAgent'] . ": curl_php",
  159. ];
  160.  
  161. curl_setopt($this->client, CURLOPT_HTTPHEADER, $header);
  162. curl_setopt($this->client, CURLOPT_POSTFIELDS, $query);
  163.  
  164. $result = curl_exec($this->client);
  165. $validator = new Validator();
  166. $returnCode = '0';
  167.  
  168. if($result === false && curl_errno($this->client) != 0) {
  169. $returnCode = $validator->validate($this->client);
  170. }
  171.  
  172. $parser = new Parser($result);
  173. $parser->parse();
  174. $this->result = $parser->getBody();
  175.  
  176. return $returnCode;
  177. }
  178.  
  179. public function getResult()
  180. {
  181. return $this->result;
  182. }
  183.  
  184. }
  185.  
  186. class Parser
  187. {
  188. private $response;
  189. private $data;
  190.  
  191.  
  192. const LINE_DELIMITER = "rn";
  193. const INITIAL_HTTP_STATUS = '-1';
  194.  
  195. public function __construct($response)
  196. {
  197.  
  198. $this->response = $response;
  199. }
  200.  
  201. public function parse()
  202. {
  203. $lines = mb_split(self::LINE_DELIMITER, $this->response);
  204. $bodyStart = 0;
  205. $returnCode = self::INITIAL_HTTP_STATUS;
  206.  
  207. foreach($lines as $i => $line) {
  208.  
  209. if (is_null($line) || strlen($line) == 0 || $line === '') {
  210. break;
  211. }
  212. $bodyStart += strlen($line) + strlen(self::LINE_DELIMITER);
  213.  
  214. if ($returnCode === self::INITIAL_HTTP_STATUS) {
  215.  
  216. $returnCode = $this->parseStatus($line);
  217. if ($returnCode === true) {
  218. continue;
  219. }
  220. return $returnCode;
  221. }
  222.  
  223. if (!$this->parseHeader($line)) {
  224. continue;
  225. }
  226. }
  227.  
  228. $body = substr($this->response, $bodyStart);
  229. $this->parseBody($body);
  230. return $returnCode;
  231. }
  232.  
  233. public function getHeader()
  234. {
  235. return $this->data['header'];
  236. }
  237.  
  238. public function getBody()
  239. {
  240. return $this->data['body'];
  241. }
  242.  
  243. private function parseStatus($str)
  244. {
  245. return true;
  246. }
  247.  
  248. private function parseHeader($str)
  249. {
  250. return true;
  251. }
  252.  
  253. private function parseBody($str)
  254. {
  255. $str = mb_convert_encoding($str, 'utf-8', 'sjis-win');
  256. $body = explode("rn", $str);
  257. $headers = [];
  258.  
  259. foreach ($body as $line) {
  260. if(preg_match('/_html/', $line)) {
  261. $pos = strpos($str, '_html');
  262. $length = strlen($str);
  263. $html = substr($str, $pos, $length);
  264. list($key, $value) = explode('=', $html, 2);
  265. list($key2, $value2) = explode('=', $line, 2);
  266. $this->data['body'][$key2] = $value;
  267. break;
  268. } else {
  269. if(preg_match('/=/', $line)) {
  270. list($key, $value) = explode('=', $line, 2);
  271. $this->data['body'][$key] = $value;
  272. } else {
  273. $line = preg_replace('/"/', '', $line);
  274. $lineArray = explode(',', $line);
  275. if(strlen($line) == 0) {
  276. continue;
  277. }
  278.  
  279. if($lineArray[0] == 2) {
  280. $headers = $lineArray;
  281. continue;
  282. }
  283.  
  284. if($lineArray[0] == 3) {
  285. $row = [];
  286. foreach($lineArray as $key => $field) {
  287. if($key == 0) {
  288. continue;
  289. }
  290. $row[$headers[$key]] = $field;
  291. }
  292.  
  293. $this->data['body'][] = $row;
  294. }
  295. }
  296. }
  297. }
  298.  
  299. return true;
  300. }
  301.  
  302. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement