WordPress cURL 400

问题描述 投票:0回答:1

我一直试图找出为什么我会收到 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

我希望有人能帮我解决这个问题。

wordpress curl
1个回答
0
投票

我发现问题了。

在内容变量中,我有以下内容:

$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 响应并且交易消息已发送。

#耶

© www.soinside.com 2019 - 2024. All rights reserved.