PHP - Curl с несколькими FormData - PullRequest
0 голосов
/ 10 сентября 2018

Я бы хотел преобразовать этот curl (работающий в оболочке) в PHP. Это выглядит особенно, поскольку у него есть опция -F, 1 для содержимого JSON и 1 для ЗАГРУЗКИ ФАЙЛА.

Если код указан ниже, и являются действительными данными.

curl -X POST https://api.sandbox.paypal.com/v1/customer/disputes/<dispute_id>/provide-evidence \
-H "Content-Type: multipart/related; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" \
-H "Authorization: Bearer <my_token>" \
-F 'input={
  "evidence_type": "PROOF_OF_FULFILLMENT",
  "evidence_info": {
  "tracking_info": [
    {
    "carrier_name": "FEDEX",
    "tracking_number": "122533485"
    }
  ]
  },
  "notes": "Test"
};type=application/json' \
-F 'file1=img/myimg.png'

Но моя проблема в том, что это не работает:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, https://api.sandbox.paypal.com/v1/customer/disputes/<DISPUTE_ID>/provide-evidence);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);

$postFields = array
(
    'input' => '{
                "evidence_type": "PROOF_OF_FULFILLMENT",
                "evidence_info": {
                    "tracking_info": [
                    {
                        "carrier_name": "FEDEX",
                        "tracking_number": "122533485"
                    }
                ]
                },
                "notes": "Test"
            };type=application/json',
    'file' => 'file1=img/myimg.png'
);

$boundary = uniqid();
$delimiter = '-------------' . $boundary;
$headers = array();
$headers[] = "Content-Type: multipart/related; boundary=" . $delimiter;
$headers[] = "Authorization: Bearer ".$token;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close ($ch);

$arr = json_decode($result);

return($arr);

У меня есть эта ошибка в ответ:

Array
(
    [name] => VALIDATION_ERROR
    [message] => Invalid request - see details
    [debug_id] => 799d8c12dd477
    [details] => Array
        (
            [0] => Array
                (
                    [location] => body
                    [issue] => MISSING_OR_INVALID_REQUEST_BODY
                )

        )

    [links] => Array
        (
        )

)

Кто-нибудь имел эту проблему в прошлом? Спасибо

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