lno 35 exit $co_gstin, $co_state_code";exit;
$curl_3 = curl_init();
if($debug=='y'){
$f = tmpfile();//for log
curl_setopt($curl_3, CURLOPT_VERBOSE, 1);//for log
curl_setopt($curl_3, CURLOPT_STDERR, $f);//for log
curl_setopt($curl_3, CURLOPT_HEADER, 1);//for log
curl_setopt($curl_3, CURLINFO_HEADER_OUT, true);//for log
}
// $xconnector="l7xxba7aa16e968646b992298b377e955e7c:20180519134451:27GSPMH2101G1Z2";
curl_setopt_array($curl_3, array(
CURLOPT_URL => ''.$gsp_base_url.'/einvoice/v1.03/invoice',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"action": "GENERATEIRN",
"data": {
"version": "1.01",
"tranDtls": {
"taxSch": "GST",
"supTyp": "'.$sup_type.'",
"regRev": "N",
"igstOnIntra":"N"
},
"docDtls": {'
.$docDtls.
'},
"sellerDtls": {'
.$sellerDtls.
'},
"buyerDtls": {
'.$buyerDtls.'
},
"valDtls": {
'.$valDtls.'
},
"itemList": ['.$itemList.']
}
}',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'gstin: '.$co_gstin.'',
'Accept: application/json',
'action: GENERATEIRN',
'X-Connector-Auth-Token: '.$xconnector.'',
'Authorization: Bearer '.$api_access_token.''),
));
if($debug=='y'){
curl_setopt($curl_3, CURLOPT_HEADER, 1);//for log
curl_setopt($curl_3, CURLINFO_HEADER_OUT, true); //for log
//// Getting your debug info:
// $data = curl_exec($ch);
// var_dump($data);
// var_dump(curl_getinfo($ch));
}
// exit("exti ".$api_access_token);
// 'X-Connector-Auth-Token: l7xxba7aa16e968646b992298b377e955e7c:20180519134451:29AFQPB8708K000',
// "itemList": ['.$itemList1.']
// echo "here 100".$responJson_3."exitng
";exit;
// echo "Contents:
$filecontents
";
$response_3 = curl_exec($curl_3);
if($debug=='y'){
var_dump($response_3);//for log
var_dump(curl_getinfo($curl_3));//for log
fseek($f, 0);//for log
echo fread($f, 1024*1024); # output up to 1024 KB cURL verbose log//for log
fclose($f);//for log
echo "
";//for log
}
// echo "$response_3";
curl_close($curl_3);
$responJson_3=json_decode($response_3);
// var_dump($response_3);
// var_dump($responJson_3);
// echo "Access token : $api_access_token
";
// echo "
Time :".date('d-M-Y H:i:s')."
";
// echo "
$filecontents
";
// echo "$response_3";
// echo "
Time :".date('d-M-Y H:i:s')."
";
// "RJ status ".$responJson_3->status;
$sno=0;
if($responJson_3->status=="0"){
$e_cnt=0;
$e_siz=sizeof($responJson_3->error);
while($e_cnt<$e_siz){
$sno++;
// echo "hrerdd";
$msg.= "Error $sno :- ". $responJson_3->error[$e_cnt]->errorMsg."
";
//echo "$msg";
if($responJson_3->error[$e_cnt]->errorMsg=="Duplicate IRN"){
$Irn=$responJson_3->info[0]->Desc->Irn;
//$inv_no_db=sqlsrv_query($conn,"SELECT [inv_no] FROM [irn_data] WHERE [irn]='$Irn'");//->fetch_object()->inv_no;
//$inv_no_db=sqlsrv_query($conn,"SELECT [inv_no] FROM [irn_data] WHERE [irn]='$Irn'");//->fetch_object()->inv_no;
$msg.= " IRN:- ".$Irn."
";
//echo "$msg";
// echo " Generated :- ". $responJson_3->info[0]->Desc->AckNo."/". $responJson_3->info[0]->Desc->AckDt."
";
$msg.= " Generated :- ". $responJson_3->info[0]->Desc->AckDt."
";
$msg.= " Invoice No :- ". $inv_no_db."
";
$msg.= " Invoice date :- ". $inv_date."
";
//echo "$msg";
//log
$inv_date_db=substr($inv_date,6,4)."-".substr($inv_date,3,2)."-".substr($inv_date,0,2);
$q149="INSERT INTO [irn_log] ([irn_id],[irn_type],[irn_dtt],[irn],[irn_msg],[inv_id],[co_id],[inv_date],[user_id],[irnl_dtt]) VALUES
('0','ei_generate','". $responJson_3->info[0]->Desc->AckDt."','". $responJson_3->info[0]->Desc->Irn."','".$responJson_3->error[$e_cnt]->errorMsg."','$inv_id','".$_SESSION["co_id"]."','$inv_date_db','".$_SESSION["user_id"]."','".date('Y-m-d H:i:s')."')";
$ins_log=sqlsrv_query($conn,$q149);
// if($_SESSION['lvl']>2000){
// $msg.="
Update IRN in DB";
// }
if(!$ins_log){echo "exkt g 172 $q149";exit;}
}
if($responJson_3->error[$e_cnt]->errorMsg=="Invalid Token"){
// "Token Error: ".print_r($responJson_3)."
";
//invalidate api_exp
$q86="UPDATE TOP (1) [api_auth] SET [api_exp]='0' WHERE [co_gstin]='$co_gstin' ORDER BY [api_id] DESC ";
$upd_api_exp=sqlsrv_query($conn, $q86);
if(!$upd_api_exp){
$alert_type="simple";
$msg="Err ApiAuth
$q86
";
}else{
$alert_type="warning";
$msg="Invalid Token Error (Code 85): Try again Generating.";
$msg.="
";
}
}
if($responJson_3->error[$e_cnt]->errorMsg=="Invalid Data"){
// "DATA Error: ".print_r($responJson_3)."
";
$msg.="Invalid Data Error (Line192).
Try again Generating";
$msg.="
".var_dump($responJson_3);
// $msg.="******Details******
";
$msg.="=====".$response_3."=====
";
// $msg.="=====".$valDtls."=====
";
// $msg.="=====".$itemList."=====
";
// $msg.="******EndOfDetails******
";
//echo $msg."
";
append_file($filename,"*****Details******\n".$response_3."\n*****!Details*****\n");
$msg.="
Download Error Details";
}
$e_cnt++;
}
//echo $response_3."
".$valDtls."
".$itemList;
if($debug=='y'){
//header("Location:landing_page.php?m=".urlencode($msg)."&fn=".urlencode($filename)."&at=".$alert_type);
}
}else{
$Irn=$responJson_3->data->Irn;
$SignedQRCode=$responJson_3->data->SignedQRCode;
$SignedInvoice=$responJson_3->data->SignedInvoice;
$AckNo=$responJson_3->data->AckNo;
$AckDt=$responJson_3->data->AckDt;
// echo "
//
//
//
//
//
//
// ";
include('php_qr_code/library/php_qr_code/qrlib.php'); // Include a library for PHP QR code
//its a location where generated QR code can be stored.
$qr_code_file_path = dirname(__FILE__).DIRECTORY_SEPARATOR.'qr_image'.DIRECTORY_SEPARATOR;
$set_qr_code_path = 'qr_image/';
// If directory is not created, the create a new directory
if(!file_exists($qr_code_file_path)){
mkdir($qr_code_file_path);
}
//Set a file name of each generated QR code
$filename = $qr_code_file_path.$inv_id.'.png';
$errorCorrectionLevel = "L";
$matrixPointSize = 2;
$frm_link = $SignedQRCode;
QRcode::png($frm_link, $filename, $errorCorrectionLevel, $matrixPointSize, 2);
// $dataString = file_get_contents($set_qr_code_path.basename($filename));//id21
// $arrData = unpack("H*hex", $dataString);//id21
// $qr_img_data = "0x".$arrData['hex'];//id21
/*
// //id22
function prepareImageDBString($filepath)
{
$out = 'null';
$handle = @fopen($filepath, 'rb');
if ($handle)
{
$content = @fread($handle, filesize($filepath));
$content = bin2hex($content);
@fclose($handle);
$out = "0x".$content;
}
return $out;
}
$qr_img_data = prepareImageDBString($set_qr_code_path.basename($filename));
// //!id22
*/
//$imagedata = file_get_contents($set_qr_code_path.basename($filename));
// $base64img = base64_encode($imagedata);
//echo "
$base64img
";
// Format the image SRC: data:{mime};base64,{data};
// $src = "data:png;base64,".$base64img;
// echo "Converted
";
// Echo out a sample image
// echo '
';
//$ins_q161="INSERT INTO [irn_data] ([irn],[irn_ack_no],[irn_ack_dtt],[irn_qr_data],[irn_sign_inv],[co_id],[inv_id],[inv_no],[inv_date],[user_id]) VALUES
//('$Irn','$AckNo','$AckDt','$SignedQRCode','$SignedInvoice','".$_SESSION['co_id']."','$inv_id','".$inv_no_db."','$inv_date_db','".$_SESSION['user_id']."')";
$ins_q161="INSERT INTO [irn_data] ([irn],[irn_ack_no],[irn_ack_dtt],[irn_qr_data],[irn_sign_inv],[co_id],[inv_id],[inv_no],[inv_date],[user_id],[qr_img_data]) VALUES
('$Irn','$AckNo','$AckDt','$SignedQRCode','$SignedInvoice','".$_SESSION['co_id']."','$inv_id','".$inv_no_db."','$inv_date_db','".$_SESSION['user_id']."','$qr_img_data')";
//exit($ins_q161);
$res161=sqlsrv_query($conn,$ins_q161);
//append_file("qry.sql",$ins_q161."\n");// if you want to log the insert qry
//unlink($set_qr_code_path.basename($filename));//if you want to delete the temp QR code genereted
if(!$res161){
echo "Error in saving IRN data. ".$mysqli->error."
$ins_q161";exit;
}else{
// $irn_id=$mysqli->insert_id;
//log
$q166="INSERT INTO [irn_log]([irn_type],[irn_dtt],[irn_id],[irn_msg],[inv_id],[co_id],[inv_date],[user_id],[irnl_dtt]) VALUES
('ei_generate','$AckDt','$Irn','success','$inv_id','".$_SESSION["co_id"]."','$inv_date','".$_SESSION["user_id"]."','".date("Y-m-d H:i:s")."')";
$ins_log=sqlsrv_query($conn,$q166);
$msg="eInvoice Created successfully with IRN $Irn
";
//header("Location:landing_page.php?m=".urlencode($msg));
//if($debug=='y'){
// header("Location:landing_page.php?m=".urlencode($msg));
//}
}
}
if($debug=='y'){
echo "$response_3";
}else{
echo $msg;
}
// echo "$docDtls";
// echo "
[$itemList]";
// echo "$sellerDtls
$sellerDtls1";
?>IRN | $Irn |
Ack No | $AckNo |
Ack Date | $AckDt |
QRCode | $SignedQRCode |
QRCode Data | $SignedQRCode |
Signed Inv | $SignedInvoice |