【发布时间】:2010-09-27 08:51:42
【问题描述】:
我正在尝试使用 PHP cURL 发布到 REST 服务,但我遇到了一些困难(这是我以前从未使用过 cURL 的原因!!)。
我整理了这段代码:
<?php
error_reporting(E_ALL);
if ($result == "00")
{
$url = 'http://127.0.0.1/xxxxxx/AccountCreator.ashx'; /*I've tried it a combination of ways just to see which might work */
$curl_post_data = array(
'companyName' =>urlencode($companyName),
'mainContact' =>urlencode($mainContact),
'telephone1' =>urlencode($telephone1),
'email' => urlencode($email),
'contact2' => urlencode($contact2),
'telephone2' => urlencode($telephone2)
'email2' => urlencode($email2);
'package' => urlencode($package)
);
foreach($curl_post_data as $key=>$value) {$fields_string .=$key. '=' .$value.'&';
}
rtrim($fields_string, '&');
die("Test: ".$fields_string);
$ch = curl_init();
curl_setopt ($ch, CURLOPT, $url);
curl_setopt ($ch, CURLOPT_POST, count($curl_post_data));
curl_setopt ($ch, CURLOPT_POSTFIELDS, $fields_string);
$result = curl_exec($ch);
curl_close($ch);
之后,我的代码会发送一封电子邮件并执行一个 IF 语句。我知道这没问题,我只是在尝试插入此 cURL 请求时才开始遇到问题。
我试过了,但它没有运行。当我与支付合作伙伴整合时,它只是说:
Your transaction has been successful but there was a problem connecting back to the merchant's web site. Please contact the merchant and advise them that you received this error message. Thank you.
收到的确切错误是 HTTP 500 错误。
谢谢。
【问题讨论】:
-
'email' => urlencode($email), 'contact2' => urlencode($contact2), 'telephone2' => urlencode($telephone2) 'email2' => urlencode($email2) ; 'package' => urlencode($package) 你真的应该修复这个数组!它缺少逗号,有一个分号..这一切都搞砸了
-
@sathia,谢谢,我修好了。不好意思错过了! die("测试:".$fields_string);现在正在输出:: Test: companyName=xxx&mainContact=xxx+xxx&telephone1=xxxx 以及所有正确的值。但这就是它输出的全部内容 - 它不会更新我的数据库,也不会继续执行以下 mail() 函数或 IF 语句。
-
当然,现在你需要对 die() 进行注释,因为 die 执行 die 所说的:终止程序的执行。只需评论它 //die("Test.. 它会继续
-
有道理!!我做到了,它很好地运行了我的脚本,甚至向我发送了一封确认电子邮件。虽然仍然没有更新我的数据库:-S 我假设这更多是 Web 服务的 URL 的问题,而不是我现在这个阶段的代码的问题。你怎么看?