Как отправить данные поста с помощью CURL на mailchimp в laravel - PullRequest
0 голосов
/ 19 января 2019

В моем приложении я хочу опубликовать данные в моей mailchimp учетной записи, которую я создал, и mailchimp id и получить API KEY.Теперь я хочу опубликовать данные на mailchimp , используя метод php CURL, когда я отправляю данные, появляется сообщение об ошибке типа

страница ошибки enter image description here

параметры данных поста

enter image description here

Примечание: при выборке данных с использованием CURL все в порядке.

Как я могурешить эту проблему любая помощь тела.

это мой метод

public function callAPI($method, $url, $data=null)
{
   $curl = curl_init();
    switch ($method)
    {
        case "POST":
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            break;
            case "PUT":
                curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
            if ($data)
                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);                              
            break;
            default:
            if($data)
                $url = sprintf("%s?%s", $url, http_build_query($data));
        }
        $headers = array(  
            "Authorization: Basic b3dhaXNfdGFhcnVmZjo5MzM1M" 
        );
        curl_setopt_array($curl, 
        [
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_SSL_VERIFYPEER => false,
            CURLOPT_SSL_VERIFYHOST => false,
            CURLOPT_HTTPHEADER => $headers, 
            CURLOPT_HEADER => true,
            CURLOPT_URL => $url.'?apikey=this is api key'
        ]);

        $response = curl_exec($curl);
        curl_close($curl);
        return $response;
}

это функция магазина

public function store(Request $request)
{
   $data_array = '
    {
        "id": "PRS08", 
        "title": "108", 
        "handle": "108", 
        "url": "http://boksha.eshmar.com/product/hoodie-kaftan-1", 
        "description": "", 
        "type": "Abaya",
        "vendor": "TALAR NINA", 
        "image_url": "http://boksha.eshmar.com/uploads/products/140/images/cropped/1512195907.png", 
        "variants": 
        [
        {
            "id": "PROD003A", 
            "title": "variants 1", 
            "url": "", 
            "sku": "", 
            "price": 280, 
            "inventory_quantity": 100, 
            "image_url": "http://boksha.eshmar.com/uploads/products/140/images/cropped/1512195907.png", 
            "backorders": "0", 
            "visibility": "visible", 
            "created_at": "2016-02-08T13:06:44+00:00", 
            "updated_at": "2016-02-08T13:06:44+00:00"
        },
        {
            "id": "PROD003B", 
            "title": "variants 2", 
            "url": "", 
            "sku": "", 
            "price": 280, 
            "inventory_quantity": 99, 
            "image_url": "http://boksha.eshmar.com/uploads/products/140/images/cropped/1512195907.png",
             "backorders": "0", 
             "visibility": "true", 
             "created_at": "2016-02-08T22:14:37+00:00", 
             "updated_at": "2016-02-08T22:22:38+00:00"
            }
        ]
    }';
    $url = "https://us7.api.mailchimp.com/3.0/";
    $data = $this->callAPI('POST', $url, $data_array);
    echo "<pre>";
    print_r($data);
}

Ответы [ 2 ]

0 голосов
/ 19 января 2019

Пожалуйста, проверьте конечную точку, конечная точка неверна.

конечная точка должна быть следующей в соответствии с вашим кодом почтальона

https://us7.api.mailchimp.com/3.0//ecommerce/stores/store_001/products

Обновите то же самое.

0 голосов
/ 19 января 2019

Я вижу две вещи, которые могут быть проблемой.

Первый - добавьте тип контента в ваши заголовки. Похоже, вы пытаетесь опубликовать строку json, поэтому имеет смысл, что ваш заголовок объявит об этом.

$headers = array(  
 'Authorization: Basic b3dhaXNfdGFhcnVmZjo5MzM1M',
 'Content-Type: application/json' //Addded the content type as json.
 );

Во-вторых, отправляемая вами строка json не является допустимой. Вам нужно удалить запятую с последнего элемента в строке.

$data_array = '
        {
            "id": "PRS08", 
            "title": "Php Curl", 
            "name": "Shahid Hussain", 
            "url": "http://fstnv.com", 
            "description": "This is test data"
        }'; //Removed the comma after last element.  Otherwise the json is invalid.

Посмотрите, поможет ли это вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...