Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zoho CRM销售线索通过PHP插入_Php_Api_Curl_Zoho - Fatal编程技术网

Zoho CRM销售线索通过PHP插入

Zoho CRM销售线索通过PHP插入,php,api,curl,zoho,Php,Api,Curl,Zoho,我与zohoCRM进行了一次PHP集成,以将Lead从web表单插入到系统中。突然,这些表单不再工作,Zoho错误消息中没有有用的调试信息。代码如下: $xml = '<?xml version="1.0" encoding="UTF-8"?>'; // same error with or without this line $xml .= '<Leads>'; $xml .= '<row no="1">'; if(isset($fname)) $xml

我与zohoCRM进行了一次PHP集成,以将Lead从web表单插入到系统中。突然,这些表单不再工作,Zoho错误消息中没有有用的调试信息。代码如下:

$xml  = '<?xml version="1.0" encoding="UTF-8"?>'; // same error with or without this line
$xml .= '<Leads>';
$xml .= '<row no="1">';
if(isset($fname)) $xml .= '<FL val="First Name">'.$fname.'</FL>';
if(isset($lname)) $xml .= '<FL val="Last Name">'.$lname.'</FL>';
if(isset($post['sender_email'])) $xml .= '<FL val="Email">'.$post['sender_email'].'</FL>';
$xml .= '<FL val="Lead Source">Web Research</FL>';
if(isset($phone)) $xml .= '<FL val="Phone">'.$phone.'</FL>';
$xml .= '<FL val="Description">'.$comments.'</FL>';
$xml .= '</row>';
$xml .= '</Leads>';

/*
var_dump($xml) returns:
<?xml version="1.0" encoding="UTF-8"?><Leads><row no="1"><FL val="First Name">Joe</FL><FL val="Last Name">Smith</FL><FL val="Email">smith@example.com</FL><FL val="Lead Source">Web Research</FL><FL val="Phone">123-456-5678</FL><FL val="Description">My comments</FL></row></Leads>
*/

$url ="https://crm.zoho.com/crm/private/xml/Leads/insertRecords";
$query="authtoken=validtoken&scope=crmapi&newFormat=1&xmlData=".$xml;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);// Set the request as a POST FIELD for curl.

//Execute cUrl session
$response = curl_exec($ch);
curl_close($ch);
var_dump( $response );

// returns 4600 Unable to process your request. Please verify if the name and value is appropriate for the "xmlData" parameter. 

似乎无论我尝试什么,我已经尝试了一天的大部分时间,除了这个无用的4600错误之外,我什么也得不到。有人碰到过这个吗

我们给Zoho发帖子的方式完全一样,他们似乎工作得很好。我只是运行了一下,以确保这不是一个全面的问题。我唯一能想到的就是确保XML中的值用斜杠和HTML实体正确转义,这样XML才是有效的。这可能就是问题所在,因为它似乎在说一些类似于无法读取XML的内容。

我们向Zoho发布帖子的方式完全相同,它们似乎工作正常。我只是运行了它,以确保这不是一个全面的问题。我唯一能想到的就是确保XML中的值用斜杠和HTML实体正确转义,这样XML才是有效的。这可能就是问题所在,因为它似乎在说一些类似于无法读取XML的内容。

我以前也遇到过同样的问题,这就是您的代码对我的工作方式

所以运行你的代码给我4600个错误代码,你的代码没问题,所以我仔细查看了关于错误的更多具体信息,只是添加了curl_error函数,在发出请求之后,在你关闭它之前,类似这样:

// ...
//Execute cUrl session
$response = curl_exec($ch);
print_r(curL_error($ch)); // Right here
curl_close($ch);
var_dump( $response );
它会告诉你真正的原因,在这种情况下,SSL连接错误是我的代码的问题,特别是密码,cURL的CURLOPT_SSL_cipher_列表,所以只需添加指定密码的选项,在这种情况下,rsa_rc4_128_sha用于Zoho:

// ...
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);// Set the request ...
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'rsa_rc4_128_sha'); // NEW

//Execute cUrl session
$response = curl_exec($ch);
再次运行代码,一切都应该正常工作…:

Ps:如果你想你可以使用这个包装器,为了与zoho crm交互,我使用它


希望有帮助:

我以前也遇到过同样的问题,这就是你的代码如何为我工作的

所以运行你的代码给我4600个错误代码,你的代码没问题,所以我仔细查看了关于错误的更多具体信息,只是添加了curl_error函数,在发出请求之后,在你关闭它之前,类似这样:

// ...
//Execute cUrl session
$response = curl_exec($ch);
print_r(curL_error($ch)); // Right here
curl_close($ch);
var_dump( $response );
它会告诉你真正的原因,在这种情况下,SSL连接错误是我的代码的问题,特别是密码,cURL的CURLOPT_SSL_cipher_列表,所以只需添加指定密码的选项,在这种情况下,rsa_rc4_128_sha用于Zoho:

// ...
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);// Set the request ...
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'rsa_rc4_128_sha'); // NEW

//Execute cUrl session
$response = curl_exec($ch);
再次运行代码,一切都应该正常工作…:

Ps:如果你想你可以使用这个包装器,为了与zoho crm交互,我使用它


希望获得帮助:

确保在CDATA括号中设置了具有特殊字符的值的内容。 电子邮件中的评论或值通常都是这样

像这样:


$xml.='

确保在CDATA括号中设置了具有特殊字符的值的内容。 电子邮件中的评论或值通常都是这样

像这样:


$xml.='

他们没有文件吗?也许他们的输入格式改变了还是怎么了?@Pekka웃- 是的,他们有文档,但据我所知,系统是相同的。它甚至默认为API的版本1,该版本应该是向后兼容的。在他们的论坛上有很多像我这样的问题,没有真正的解决方案,所以我想我应该试试。你能更新你的代码,让我们看看答案是如何帮助解决这个问题的吗?他们没有文档吗?也许他们的输入格式改变了还是怎么了?@Pekka웃- 是的,他们有文档,但据我所知,系统是相同的。它甚至默认为API的版本1,该版本应该是向后兼容的。在他们的论坛上有很多像我这样的问题,没有真正的解决方案,所以我想我应该试试。你能更新你的代码,让我们看看答案是如何帮助解决这个问题的吗?@jrade-谢谢你的想法。也许他们对验证更严格了。我来试一试。@jrade-你说得对。添加到评论部分的URL没有正确转义。谢谢你让我走上正轨。@jrade-谢谢你的主意。也许他们对验证更严格了。我来试一试。@jrade-你说得对。添加到评论部分的URL没有正确转义。谢谢你让我走上正轨。