傳送時...
1. 首先是資料傳遞的FUNC ,$Url是目的地、$post就是交換的資料,若要改成GET則調整CURLOPT_CUSTOMREQUEST設定即可。timeout時間故意調長,因為碰上timeout錯誤時很殘念的。
function PostData($Url, $post){
$ch = curl_init($Url);
$headers = array(
'Content-Length:'.strlen($post),
'Content-type: application/json'
);
//print_r($headers);
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => 1,
CURLOPT_CUSTOMREQUEST=>"POST",
CURLOPT_POSTFIELDS=> $post,
CURLOPT_HTTPHEADER=> $headers,
CURLOPT_TIMEOUT=>500,
CURLOPT_CONNECTTIMEOUT=>5
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
if(curl_errno($ch)!=0){
trigger_error(curl_error($ch));
}
curl_close($ch);
return $result;
}
2. 傳遞參數封裝,做成陣列即可...弄複雜些給個陣列包陣列的sample
$params_data = array(
'order_no' => $order_no,
'amt' => $amt,
'result_url' => $result_url
);
$order_data = array (
'sender' => "rest",
'ver' => "1.0.0",
'tx_type' => 1,
'params' => $params_data
);
3. 開始傳遞
PostData($URL, json_encode($order_data));
接收時....
1. 首先...因為不知道傳回來的是啥變數名,只知道是個JSON串,所以通通一起收php://input是蠻方便的方式。
$post_data = file_get_contents("php://input");
2. 拆解JSON取得資料,原則上卡關較久的是array裡面的array資料讀取。
$j_result = json_decode($post_data);
$data = array(
'order_no'=> $j_result->params->order_no,
'sender'=> $j_result->sender,
);
沒有留言:
張貼留言