【问题标题】:How to post JSON data to Paypal Adaptive如何将 JSON 数据发布到 Paypal Adaptive
【发布时间】:2012-06-21 09:15:34
【问题描述】:

我正在尝试通过 curl 使用 Paypal Adaptive API。

文档告诉我可以以 JSON 格式发送参数,但我总是收到 Invalid Request (580001) 错误。

这是我正在做的请求:
标头

[X-PAYPAL-SECURITY-USERID] => XXXXXX
[X-PAYPAL-SECURITY-PASSWORD] => XXXXXX
[X-PAYPAL-SECURITY-SIGNATURE] => XXXXXX
[X-PAYPAL-REQUEST-DATA-FORMAT] => JSON
[X-PAYPAL-RESPONSE-DATA-FORMAT] => JSON
[X-PAYPAL-APPLICATION-ID] => APP-80W284485P519543T   //APP-ID for Sandbox

这是我构建的 json 数据:

{"endingDate":"2012-06-11T12:20:02+00:00",
 "startingDate":"2012-06-20T12:20:02+00:00",
 "maxTotalAmountOfAllPayments":"1000.00",
 "currencyCode":"EUR",
 "cancelUrl":"http:\/\/localhost\/xx\/pledge?id=221&step=fail",
 "returnUrl":"http:\/\/localhost\/xx\/pledge?id=221&step=done",
 "pinType":"NOT_REQUIRED",
 "requestEnvelope":{"detailLevel":"ReturnAll","errorLanguage":"en_US"},
 "clientDetails":[]
}

我认为我没有正确发送 JSON 数据。 我正在设置这样的 JSON 数据(使用 curl):

curl_setopt( $handle, CURLOPT_POST, true );
curl_setopt( $handle, CURLOPT_POSTFIELDS, $json_data );

这是发送 json 数据的正确方法吗?

【问题讨论】:

    标签: php curl paypal


    【解决方案1】:

    好的,我找到了解决方案:

    我没有在标题中指定 Content-TypeContent-Length
    所以最后的结果是这样的:

    $json_data = json_encode( $json_fields );
    
    $this->headers = array(
    // Authentication
    'X-PAYPAL-SECURITY-USERID'  => $this->_username,
    'X-PAYPAL-SECURITY-PASSWORD'    => $this->_password,
    'X-PAYPAL-SECURITY-SIGNATURE'   => $this->_signature,
    
    // Data format
    'X-PAYPAL-REQUEST-DATA-FORMAT'  => 'JSON',
    'X-PAYPAL-RESPONSE-DATA-FORMAT' => 'JSON',
    
    // Application and Device identification
    'X-PAYPAL-APPLICATION-ID'   => $this->_app_id,
    'X-PAYPAL-DEVICE-IPADDRESS' => $this->_client_ip,
    'Content-Type'          => 'application/json',
        'Content-Length'                => strlen( $json_data )
      );
    

    【讨论】:

      猜你喜欢
      • 2013-02-21
      • 1970-01-01
      • 2016-06-05
      • 1970-01-01
      • 2023-01-29
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多