From 6dbd9fa7f1f45e96de0facbe4f66e0ceca022908 Mon Sep 17 00:00:00 2001 From: slavo Date: Mon, 1 Jun 2015 11:26:58 +0200 Subject: [PATCH] Method Klarna::xmlrpc_call() modified: alternate fix for (possibly) invalid character in thrown exception (cherry picked from commit f93a7ff) --- src/Klarna.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Klarna.php b/src/Klarna.php index 43a173b..90cf818 100644 --- a/src/Klarna.php +++ b/src/Klarna.php @@ -3604,13 +3604,24 @@ protected function xmlrpc_call($method, $array) } } - //Send the message. $selectDateTime = microtime(true); if (self::$xmlrpcDebug) { $this->xmlrpc->setDebug(2); } + //Save previous XML RPC client encoding settings. + $tmp_xmlrpc_defencoding = $GLOBALS['xmlrpc_defencoding']; + $tmp_xmlrpc_internalencoding = $GLOBALS['xmlrpc_internalencoding']; + //Set XML RPC client encoding settings. + $GLOBALS['xmlrpc_defencoding'] = 'ISO-8859-1'; + $GLOBALS['xmlrpc_internalencoding'] = 'UTF-8'; + + //Send the message. $xmlrpcresp = $this->xmlrpc->send($msg); + //Restore previous XML RPC client encoding settings. + $GLOBALS['xmlrpc_defencoding'] = $tmp_xmlrpc_defencoding; + $GLOBALS['xmlrpc_internalencoding'] = $tmp_xmlrpc_internalencoding; + //Calculate time and selectTime. $timeend = microtime(true); $time = (int) (($selectDateTime - $timestart) * 1000);