我正在通过flipkar订单API获取订单详细信息。它一次是第一个20(0-20)结果,对于下一个记录,它给出了下一页URL。对于获取接下来的20个记录(20-40),我们必须使用下一页url和获取订单来调用curl。对于此,我在下面使用代码:
$listingbulk=array();
$headers = array(
'Cache-Control: no-cache',
'Content-type: application/json',
'Authorization: Bearer '.$fkt
);
$bulkjson= '{
"filter": {
"orderDate": {
"fromDate": "'.$orderfrom.'",
"toDate": "'.$orderto.'"
}
}
}';
$urlbulk = "https://api.flipkart.net/sellers/v2/orders/search";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,$urlbulk);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $bulkjson);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$resultbulksku = curl_exec($curl);
$listingbulk[] = json_decode($resultbulksku);
if (curl_errno($curl)) {
echo 'Error:' . curl_error($curl);
}
curl_close ($curl);
$nextPageUrl= $listingbulk[0]->nextPageUrl;
if ($nextPageUrl !=''){
$newpageurl= orderFk($nextPageUrl,$headers);
if ($newpageurl !='') {
$newpageurl2= orderFk($newpageurl,$headers);
if ($newpageurl2 !=''){
$newpageurl3= orderFk($newpageurl2,$headers);
}
}
}
功能在这里:
function orderFk($nextPageUrl,$headers){
$fp = fopen('order/order'.$currenttime.'.csv',"a");
$urlbulk1 = "https://api.flipkart.net/sellers/v2/".$nextPageUrl;
$curl1 = curl_init();
curl_setopt($curl1, CURLOPT_URL,$urlbulk1);
curl_setopt($curl1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl1, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl1, CURLOPT_HTTPHEADER, $headers);
$resultbulksku1 = curl_exec($curl1);
$listingbulk1[] = json_decode($resultbulksku1);
if (curl_errno($curl1)) {
echo 'Error:' . curl_error($curl1);
}
curl_close ($curl1);
$listingbulk=$listingbulk1;
$newnextPageUrl= $listingbulk1[0]->nextPageUrl;
return $listingbulk;
}
我想板条如果其他动态条件进行板条,因此,如果"下一页"响应中存在"下一页",则应使用新URL再次调用相同的函数(如果在其他情况下,请多次多次调用函数)。如果有人有解决方案,请回复。
我建议这样的东西,循环时订单函数使用,错误或循环超过maxpage。在$列表中,您都有所有答复。
function orderFk($nextPageUrl,$headers){
$page = 1;
$maxpage = 100;
$exit = 0;
$list = array();
while(strlen($nextPageUrl)){
$urlbulk = "https://api.flipkart.net/sellers/v2/".$nextPageUrl;
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,$urlbulk);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$resultbulk = curl_exec($curl);
$nextPageUrl = '';
if(curl_errno($curl)) {
$exit = 1;
}
curl_close($curl); // close before exit while loop
if($exit==1 || $page>$maxpage){
break;
}
$listingbulk = json_decode($resultbulk);
if(strlen($listingbulk[0]->nextPageUrl)>0){
$nextPageUrl = $listingbulk[0]->nextPageUrl;
}
$list[] = $listingbulk;
$page++;
}
return $list;
}