Is PHP/Curl not working on CIM updates?
This program was working and it just stopped about a week or two ago. - we don't use it very often.
Also, I have my sandbox setup and am not seeing an update into CIM - same as the live system - from the PHP/Curl program that was working.
How do I trace the attempt?
I've debugged the program to see that all required fields are correct, and I'm not getting an error code - it's just not updating.
Does anyone here actually help out on code? Maybe something has been deprecated.
Solved! Go to Solution.
โ09-08-2014 04:44 PM
I'm sorry - I've worked with XML before - I have an Authorize.net payment application that I built, but in that, there is a send. I can't find a send in this code, and I'm not sure what I'm doing the echo on.
I would assume
echo error_messages[];
would work, but it errors out. It works when sending a payment through.
Is
$this->process();
the send?
โ09-09-2014 03:22 PM
There is a require('include/authorizenet.cim.class.php');
see if you can find createCustomerProfileRequest in that php file
Is this how that php look like?
If so, in the
function process($retries = 3)
after
$this->response = curl_exec($ch);
echo $this->response
โ09-09-2014 03:55 PM - edited โ09-09-2014 04:03 PM
It is blank, so I put an echo $this->xml just before the curlopt_POST and here that is:
(this is not real data)
3xhfj5kfu67f 28283pT7579554v
Carr, D d@csi.com individual D Carr
23 Trail Dr.
Lake St. Louis MO 63367 US 4111111111111111 2017-04 D Carr
23 Trail Dr.
Lake St. Louis MO 63367 US
Does Authorize.net verify the address or credit card in the sandbox for CIM? It's not real data.
Do I have it set up right for test mode? $test_mode = true
function AuthNetCim($login, $transkey, $test_mode)
{
$this->login = $login;
$this->transkey = $transkey;
$this->test_mode = $test_mode;
$subdomain = ($this->test_mode) ? 'apitest' : 'api';
$this->url = "https://" . $subdomain . ".authorize.net/xml/v1/request.api";
//$this->url = "https://api.authorize.net/xml/v1/request.api";
}
โ09-09-2014 05:30 PM
$this->response is blank, that would be the issue.
are you running this test using the sandbox account on your production server?
if it sending to the wrong server, it will return an account not valid or something in the response.
<messages><resultCode>Error</resultCode><message><code>E00007</code><text>User authentication failed due to invalid authentication values.</text></message></messages>
โ09-09-2014 06:05 PM - edited โ09-09-2014 06:14 PM
Do I have it set up right for test mode? $test_mode = true
function AuthNetCim($login, $transkey, $test_mode)
{
$this->login = $login;
$this->transkey = $transkey;
$this->test_mode = $test_mode;
$subdomain = ($this->test_mode) ? 'apitest' : 'api';
$this->url = "https://" . $subdomain . ".authorize.net/xml/v1/request.api";
//$this->url = "https://api.authorize.net/xml/v1/request.api";
}
so it would be https://apitest.authorize.net/xml/v1/request.aspi (if my eyes are not too tired)
โ09-09-2014 06:16 PM
for sandbox account, yes.
From http://php.net/manual/en/function.curl-setopt.php
can you add something like the following after the $this->response = curl_exec($ch);
if (curl_errno($ch)) { echo "Error: " . curl_error($ch); }
with curl_setopt($ch, CURLOPT_HEADER, 1);
should have something like
HTTP/1.1 200 OK Server: Apache X-Backend-Server: pp-web03 Vary: Accept-Encoding Content-Type: text/html; charset=UTF-8 Date: Fri, 06 Aug 2010 15:32:00 GMT Expires: Fri, 06 Aug 2010 01:42:00 GMT Transfer-Encoding: chunked X-Powered-By: PHP/5.2.9 X-Cache-Info: not cacheable; response has already expired
โ09-09-2014 06:26 PM - edited โ09-09-2014 06:30 PM
Error: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
โ09-09-2014 06:31 PM
This must not be set right:
curl_setopt($ch, CURLOPT_URL, $this->url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml"));
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $this->xml);
echo "test1-".$this->xml."<BR>";
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$this->response = curl_exec($ch);
โ09-09-2014 06:45 PM
did anything change on the server? updated anything?
google show a bunch of reason that your might be getting
"140770FC ssl23_get_server_hello unknown protocol curl"
โ09-09-2014 06:50 PM
I put a router before it - I'll bet there is a port that needs to be opened.
Would it be 443?
โ09-09-2014 06:52 PM