我一直试图找出为什么我会收到 cURL 400 状态以及如何在 WordPress 中修复它。
基本上,当用户在 WordPress 页面上填写表单并单击提交时,会触发一系列功能。
我刚刚添加了下面的功能。 我在 Postman 中测试了 API,它工作正常,但它不想在这个 WordPress 网站上工作。
使用 WordPress 仪表板中的 PHP 插入器,我插入了以下代码来进行 API 调用:
function test(){
$url = "https://api.ongage.net/MY_LIST_ID/api/transactional/send";
$xun = "X_USERNAME: " . MY_USERNAME;
$xpw = "X_PASSWORD: " . MY_PASSWORD;
$xac = "X_ACCOUNT_CODE: " . MY_ACCOUNTCODE;
$content = '{
"list_id": ,
"campaign_id": ,
"recipients": ["[email protected]"],
"check_status": true,
"sending_connection_id": MY_SENDING_CONNECTION_ID
}';
$curl = curl_init( $url );
curl_setopt( $curl, CURLOPT_HEADER, false );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_HTTPHEADER, array(
"Content-type: application/json",
$xun,
$xpw,
$xac
) );
curl_setopt( $curl, CURLOPT_POST, true );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $content );
$json_response = curl_exec( $curl );
$status = curl_getinfo( $curl, CURLINFO_HTTP_CODE );
if ( $status != 200 && $status != 201 ) {
$error = error_log( "Error: call to URL $url failed with status $status,
response $json_response, curl_error " . curl_error( $curl ) . ", curl_errno " . curl_errno( $curl ) );
echo '<script language="javascript">';
echo 'alert("fail "+'.$status.')';
echo '</script>';
} else {
echo '<script language="javascript">';
echo 'alert("success")';
echo '</script>';
}
curl_close( $curl );
$response = json_decode( $json_response, true );
}
在上面的 IF 语句中,警报窗口显示 400。我不知道为什么,也不知道如何检查它。
请帮忙。
** 编辑 **
我对上面代码中的 $content 变量进行了调整。 现在看起来像这样:
$content = '{
"list_id": MY_LIST_ID,
"campaign_id": MY_CAMAPAIGN_ID,
"recipients": ["[email protected]"],
"check_status": true,
"sending_connection_id": MY_SENDING_CONNECTION_ID
}';
所以我添加了list_id和campaign_id,提交表单后,我现在收到404错误。
我真的认为这与内容有关。 我引用此页面:https://ongage.atlassian.net/wiki/spaces/HELP/pages/947486763/Transactional+Mailing+API+Methods
我希望有人能帮我解决这个问题。
我发现问题了。
在内容变量中,我有以下内容:
$content = '{
"list_id": MY_LIST_ID,
"campaign_id": MY_CAMAPAIGN_ID,
"recipients": ["[email protected]"],
"check_status": true,
"sending_connection_id": MY_SENDING_CONNECTION_ID
}';
“list_id”应该是“message_id”。 进行更新后,我收到了 200 响应并且交易消息已发送。
#耶