Как сделать массив PHP данных Multipart Post? - PullRequest
0 голосов
/ 28 мая 2020

Я работаю над интеграцией PayPal. и сделать запрос на предоставление доказательств в api действий по разрешению споров. Я не смог создать массив тела запроса, который приведен ниже:

curl -v -X POST https://api.sandbox.paypal.com/v1/customer/disputes/PP-D-27803/provide-evidence \
-H "Content-Type: multipart/related; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" \
-H "Authorization: Bearer Access-Token" \
-F 'input={
    "evidences": [{
      "evidence_type": "PROOF_OF_FULFILLMENT",
      "evidence_info": {
      "tracking_info": [{
       "carrier_name": "FEDEX",
       "tracking_number": "122533485"
   }]
},
"notes": "Test"
}
]
};type=application/json' \
-F 'file1=@NewDoc.pdf'

В этом запросе после флага -F я не смог создать массив, потому что новая структура этого json. Вы хотите сделать php массив этого тела API запроса?.

Это массив, который я пытаюсь отправить в запросе:

[
  'input' => [
  'evidences' => [
      [
          'evidence_type' => 'PROOF_OF_FULFILLMENT',
          'evidence_info' => [
              'tracking_info' => [
                  [
                      'carrier_name' => 'FEDEX',
                      'tracking_number' => '122533485'
                  ]
              ]
          ],
         'notes' => 'Test' 
       ],
     ]
   ]
 ]

Ответы [ 2 ]

0 голосов
/ 05 июня 2020

У меня была та же проблема, и после общения со службой поддержки клиентов он дал мне больше рекомендаций. Но в настоящее время это можно реализовать только с помощью curl. Я пробовал использовать почтальон python запросы php, что не очень хорошо. Это мой код завитка. Обратите внимание на символ @ позади

file1=@1.pdf   this  @

введите описание изображения здесь

0 голосов
/ 28 мая 2020

В коде PHP, поскольку вы пытаетесь использовать curl

        $url = "https://api.sandbox.paypal.com/v1/customer/disputes/PP-D-27803/provide-evidence";
        $data = [
  'input' => [
  'evidences' => [
      [
          'evidence_type' => 'PROOF_OF_FULFILLMENT',
          'evidence_info' => [
              'tracking_info' => [
                  [
                      'carrier_name' => 'FEDEX',
                      'tracking_number' => '122533485'
                  ]
              ]
          ],
         'notes' => 'Test' 
       ],
     ]
   ]
 ]

        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
        $response = curl_exec($ch);
        curl_close($ch);

Это базовый c почтовый запрос, например отправка формы из html, как вам нужно отправить.

для получения дополнительной информации посетите https://www.php.net/manual/en/book.curl.php или можете использовать Google для использования curl с php

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