【问题标题】:Please convert curl command line code to PHP curl请将 curl 命令行代码转换为 PHP curl
【发布时间】:2014-08-28 06:49:28
【问题描述】:

谁能帮我把它转换成 PHP 代码:

curl -v https://api.sandbox.paypal.com/v1/payments/payment/PAY-98656197DP057202KKO5NMSY/execute/ \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer A015-m7XgI9uXtd0g4sckNFH3bEaxrAiFlbTecVe9SSgoX4' \
-d '{ "payer_id" : "XMS2L726YHQQY" }'

这是我目前所拥有的:

$post = json_encode(array('payer_id' => Session::get('paypal_PayerID')));

$curl = curl_init('https://api.sandbox.paypal.com/v1/payments/payment/'.Session::get('paypal_id').'/execute/');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: '.Session::get('paypal_token_type').' '.Session::get('paypal_access_token')));
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);

$html = curl_exec($curl);
$status = curl_getinfo($curl);
curl_close($curl);

我已经使用了几个小时,但 paypal 没有给我相同的响应(例如,它工作了两次,但大多数时候它返回 500 错误)。

也许我现在是凌晨 2 点,实在是太迷茫了……

在有人问之前,是的,我已经在发送 curl 请求之前验证了这些会话变量具有值。

【问题讨论】:

    标签: php curl paypal


    【解决方案1】:

    我相信你 curl_setopt 调用的顺序在幕后很重要。尝试将 CURLOPT_HTTPHEADER 调用放在最后。您也可以考虑使用 Fiddler 或类似的东西来嗅探您的 HTTP 请求,以便轻松确定是否存在任何有效差异。

    【讨论】:

    • 这越来越奇怪了(我认为)。过去 3 个小时左右,我一直在 Google Chrome 中对其进行测试。我刚刚切换到 Firefox,它多次返回 200 代码和正确响应。我完全没有对上面的代码进行任何更改...
    猜你喜欢
    • 1970-01-01
    • 2017-05-25
    • 2019-06-04
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 2017-01-01
    相关资源
    最近更新 更多