2017-08-17 52 views
0

對不起這個(不得已,短頭;-)拍攝自己的;這顯然是我的錯,但我花了幾天時間在這裏和其他地方搜索,閱讀文檔,嘗試各種各樣的東西等,但它仍然無法正常工作。PHP REST貝寶支付創建JSON malfromed響應

有人請點我什麼是錯在這裏:

<?php 

$data = array(
    "intent" => "sale", 
    "redirect_urls" => array(
      "return_url" => "http://.../ok.html", 
      "cancel_url" => "http://.../cancel.html" 
     ), 
    "payer" => array(
      "payment_method" => "paypal" 
     ), 
    "transactions" => array(
      "amount" => array(
        "total" => "1.23", 
        "currency" => "GBP" 
       ) 
     ) 
); 

$ch = curl_init("https://api.sandbox.paypal.com/v1/payments/payment"); 

curl_setopt($ch, CURLOPT_VERBOSE, true); 
$logfile = fopen("curl_log.txt", "w"); 
curl_setopt($ch, CURLOPT_STDERR, $logfile); 

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json', 
    'Authorization: Bearer <long token returned from REST call', 
)); 
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 

$res = curl_exec($ch); 

curl_close($ch); 
fclose($logfile); 

?> 

錯誤:

{"name":"MALFORMED_REQUEST","message":"Incoming JSON request does not map to API request","information_link":"developer.paypal.com/webapps/de‌​veloper/docs/api/…;} 
+0

有什麼錯誤信息或捲曲結果? – smarber

+0

你想達到什麼目的?有沒有錯誤?請解釋你的問題。 – Roshan

+1

使用[捲曲誤差函數(http://php.net/manual/en/function.curl-strerror.php),以獲得實際的錯誤的詳細信息 –

回答

0

更新您的$ data數組一樣,

$data = array(
    "intent" => "sale", 
    "payer" => array(
      "payment_method" => "paypal" 
     ), 
    "transactions" =>array( 
      array(
       "amount" => array(
         "total" => "1.23", 
         "currency" => "GBP") 
      ) 
     ), 
    "redirect_urls" => array(
      "return_url" => "http://.../ok.html", 
      "cancel_url" => "http://.../cancel.html" 
    ) 
); 
+0

它不是複製粘貼,你需要將事務數組包裝在一個數組中 –

+0

非常感謝。 – Nagi

+0

如果它工作,然後upvote答案,所以這將是對其他人也有幫助 –