PHP转换的基本卷曲

时间:2017-01-18 23:51:24

标签: php curl stripe-payments

我正在试图弄清楚如何执行这个CURL命令:

curl https://uploads.stripe.com/v1/files \
  -u sk_test_OCHANGEDPcDr0: \
  -F purpose=identity_document \
  -F file="@/path/to/a/file.jpg"

在PHP中,我正在使用这个PHP脚本: https://github.com/php-mod/curl

尝试了这个:

$curl->setBasicAuthentication('-u', 'sk_live_CHANGED');
$curl->post('https://uploads.stripe.com/v1/files', array(
        'purpose' => 'dispute_evidence',
        'file' => $targetFile,
    ));

但是我认为语法是完全错误的,我真的很陌生,并且不了解所有不同的-u和-F命令PHP等价物。

3 个答案:

答案 0 :(得分:1)

你可能想尝试这样的事情:

$headers = array(
  'Authorization: Bearer ' . $your_api_key,
  'Content-Type: multipart/form-data'
);

$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_RETURNTRANSFER => 1,
  CURLOPT_URL => 'https://uploads.stripe.com/v1/files',
  CURLOPT_POST => true,
  CURLOPT_INFILESIZE => '10000',
  CURLOPT_HTTPHEADER => $headers,
  CURLOPT_POSTFIELDS => array(
    'purpose' => 'dispute_evidence',
    'file' => '@' . realpath($path_to_file)
  )
));

$resp = curl_exec($curl);
curl_close($curl);

编辑:或者,您可以直接从浏览器http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm#i34924上传文件。

答案 1 :(得分:1)

-u username:password选项转换为:

$curl->setBasicAuthentication('username', 'password');

要上传文件,您需要将@放在文件名之前,就像在curl命令中一样。

$curl->post('https://uploads.stripe.com/v1/files', array(
    'purpose' => 'dispute_evidence',
    'file' => '@' . $targetFile,
));

答案 2 :(得分:0)

如果您有一个功能curl命令调用,您可以通过添加--libcurl filename.c选项来获得所需内容。

这将生成一个C程序来执行命令行所做的事情。虽然您使用的是PHP而不是C,但这仍然很有用,因为它们对各种选项都使用相同的名称。