Trimitere factura cu OAuth

::e-Factura, conectare SPV
Forum rules
:: limbajul folosit in acest forum va fi unul civilizat, in limita subiectelor din topicurile deschise.
:: orice manifestare necivilizata (agresiune verbala, comportament neadecvat, reclama abuziva fara legatura cu forumul) va duce la stergerea contului de user.
:: pt. inscriere USER NOU la acest FORUM, folositi linkul https://profox.ro/forum-register/
User avatar
admin
Posts: 215
Joined: 16 Jun 2022, 17:03

Re: Trimitere factura cu OAuth

Post by admin »

am incercat metoda postata de tine dar cand face requestul pt a obtine tokenul primesc o eroare: "error":"server_error", "error_description":"Internal server error"
ai idee de ce imi da eroarea asta ?... :(
mmarius28 wrote: 02 Sep 2022, 14:16 Am facut un script "index.php" pentru obtinerea tokenului de acces.

Scriptul se poate cu pune pe serverul web in directorul "oauth" (ex: https://exemplu.ro/oauth/index.php)

Trebuie completate $client_id, $client_secret, $redirect_uri (ex: https://exemplu.ro/oauth/)

Se apeleaza in browser $redirect_uri (ex: htps://exemplu.ro/oauth/), care este aceeasi adresa cu pagina de callback cu care s-a autorizat aplicatia la ANAF.

Pagina face un redirect la pagina de autorizare ANAF si obtine codul de autorizare pe baza clinet_id si secret_id

Cand aceeasi pagina este apelata de ANAF cu codul de autorizare, face un POST la ANAF pentru obtinerea token-ului de acces.

Planul meu este sa lansez pagina din aplicatia VFP, utilizatorul sa copie token-ul si apoi sa il introduca in aplicatie, care il salveaza in baza de date pentru folosirea ulterioara.

Code: Select all

<?php
	// oAuth2

	$get = $_REQUEST;
	$query_string = '';
	foreach ($get as $key => $value) {
		$query_string .=  $key . '=' . $value . '&';
	}
	// echo($query_string);
	parse_str($query_string);

	$client_id = 'CLIENT_ID_ANAF';
	$client_secret = 'CLIENT_SECRET_ANAF';
	$redirect_uri = 'CALLBACK_URL_ANAF';

	if (empty($code)) {
		// Obtinere cod autorizare
		$url = 'https://logincert.anaf.ro/anaf-oauth2/v1/authorize';
		$url .='?client_id='.$client_id;
		$url .='&client_secret='.$client_secret;
		$url .='&response_type=code';
		$url .='&redirect_uri='.$redirect_uri;
		
		// Redirectionez la pagina de autorizare ANAF pentru obtinerea codului de autorizare
		// echo $url;
		header('Location: '.$url);
		exit();
	}
	else {
		// callback ANAF: https://example.ro/?code=COD_AUTORIZARE
		
		// Obtinere token pe baza codului de autorizare
		// print_r('Codul de autorizare este: '.$code);
		
		$url = 'https://logincert.anaf.ro/anaf-oauth2/v1/token';

		//The data you want to send via POST
		$fields = [
			'client_id'      => $client_id,
			'client_secret' => $client_secret,
			'code'         => $code,
			'redirect_uri'	=> $redirect_uri,
			'grant_type' => 'authorization_code'
		];

		//url-ify the data for the POST
		$fields_string = http_build_query($fields);

		//open connection
		$ch = curl_init();

		//set the url, number of POST vars, POST data
		curl_setopt($ch,CURLOPT_URL, $url);
		curl_setopt($ch,CURLOPT_POST, true);
		curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

		//So that curl_exec returns the contents of the cURL; rather than echoing it
		curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); 

		//execute post
		$jsonobj = curl_exec($ch);
		//echo $jsonobj;
		
		$arr = json_decode($jsonobj, true);
		
		echo '<p>Copiati ANAF Access Token de pe linia urmatoare si completati-l in aplicatia eFactura</p>';
		echo '<p><b>'.$arr["access_token"].'</b></p>';
		
		echo 'refresh_token: '.$arr["refresh_token"];
				
	}


?>
mgabi
Posts: 497
Joined: 23 May 2022, 21:15

Re: Trimitere factura cu OAuth

Post by mgabi »

Help, ca o iau razna ... daca v-ati lovit de asa ceva:

Token acces ok, citesc mesajele ok de pe calculatoare diverse, si de la mine tot ok.
Pe un singur calculator nu functioneaza si primesc 403 in status si raspuns gol. Are Win10 Pro, am dezactivat antivirusul, am verificat TLS-urile sa fie Enabled ... nu stiu ce sa mai incerc!!
User avatar
admin
Posts: 215
Joined: 16 Jun 2022, 17:03

Re: Trimitere factura cu OAuth

Post by admin »

mgabi wrote: 14 Mar 2024, 20:18 Help, ca o iau razna ... daca v-ati lovit de asa ceva:

Token acces ok, citesc mesajele ok de pe calculatoare diverse, si de la mine tot ok.
Pe un singur calculator nu functioneaza si primesc 403 in status si raspuns gol. Are Win10 Pro, am dezactivat antivirusul, am verificat TLS-urile sa fie Enabled ... nu stiu ce sa mai incerc!!
1.Incearca sa bagi in firewall la app permise si executabilul care apeleaza SPV-ul :)
2.incearca si ca run as administrator si fara run as administrator la lansare
3.vezi ce drepturi are userul cu care se intra in windows la boot
User avatar
admin
Posts: 215
Joined: 16 Jun 2022, 17:03

Re: Trimitere factura cu OAuth

Post by admin »

mgabi wrote: 14 Mar 2024, 16:57 S-a mai discutat, nu cred ca reusit pana acum cineva sa genereze tokenul din VFP (cu un cod nativ)
Doar cu modul extern apelat cu RUN (aplic, oauth-anaf sau curl sau orice programel extern focut in C de ex.)
am facut requestul cu curl.exe.. dar nu se creeaza fisierul de raspuns.. ceva idei ?

script request :

comanda='curl.exe --data "'+;
'grant_type=authorization_code'+;
'&code='+xcod+;
'&token_content_type=jwt'+;
'&redirect_uri=https://www....'+;
'&client_id=ecbee.....'+;
'&client_secret=3d9f65...." '+;
'"https://logincert.anaf.ro/anaf-oauth2/v1/token" '+;
'-H "Content-Type: Text/Plain" '+;
'-H "Content-Type: application/x-www-form-urlencoded" '+;
'-o "raspuns.txt"'
mgabi
Posts: 497
Joined: 23 May 2022, 21:15

Re: Trimitere factura cu OAuth

Post by mgabi »

eu nu folosesc curl, dar am testat mai demult si mergea cu ceva de genul:
'curl --request POST https://logincert.anaf.ro/anaf-oauth2/v1/token --data "grant_type=authorization_code&code='+....
mgabi
Posts: 497
Joined: 23 May 2022, 21:15

Re: Trimitere factura cu OAuth

Post by mgabi »

Am gasit problema de la rejectul cu 403 , este o o ciudatenie la criptare , mai exact la decriptare ... pe acel calculator decriptarea face ciudatenii ... imi da un rezultat diferit. Am mai avut problema asta acum 2 luni pe un comp. mai vechi, am modificat biblioteca si rezolvasem (creadeam eu :mrgreen: ).

N-am idee de ce se comporta asa, ce este diferit acolo. Am schimbat criptarea/decriptarea si s-a rezolvat.
User avatar
admin
Posts: 215
Joined: 16 Jun 2022, 17:03

Re: Trimitere factura cu OAuth

Post by admin »

mgabi wrote: 15 Mar 2024, 01:03 eu nu folosesc curl, dar am testat mai demult si mergea cu ceva de genul:
'curl --request POST https://logincert.anaf.ro/anaf-oauth2/v1/token --data "grant_type=authorization_code&code='+....
am incercat si cu --request POST si cu GET, inclusiv cu optiunile prescurtate -X POST si -X GET
dar nu se creeaza fisierul raspuns.txt

:(
mrapi
Posts: 426
Joined: 20 May 2022, 16:53

Re: Trimitere factura cu OAuth

Post by mrapi »

ruleaza in cmd si vezi ce mesaj iti da,am avut probleme cu executia curl.exe pe w11 si a mers abia dupa ce am adaugat si --ssl-no-revoke
User avatar
admin
Posts: 215
Joined: 16 Jun 2022, 17:03

Re: Trimitere factura cu OAuth

Post by admin »

mrapi wrote: 15 Mar 2024, 11:34 ruleaza in cmd si vezi ce mesaj iti da,am avut probleme cu executia curl.exe pe w11 si a mers abia dupa ce am adaugat si --ssl-no-revoke
am incercat in cmd .. am aceeasi eroare fara alte explicatii (server_error). atasat poza
1.jpg
1.jpg (80 KiB) Viewed 2304 times
gabi123
Posts: 168
Joined: 28 Jun 2022, 20:56

Re: Trimitere factura cu OAuth

Post by gabi123 »

mie-mi merge asa :
xurl=goapp.cale_prg+[curl64.exe --request POST https://logincert.anaf.ro/anaf-oauth2/v1/token --data "grant_type=authorization_code&token_content_type=jwt]
xurl=xurl+[&code=]+ALLTRIM(thisform.cod_autorizare)
xurl=xurl+[&redirect_uri=]+ALLTRIM(wtokens.callback_url)
xurl=xurl+[&client_id=]+ALLTRIM(wtokens.client_id)
xurl=xurl+[&client_secret=]+allt(wtokens.client_secret)+[" ]
xurl=xurl+[ -k -o "]+xftemp+["] && raspunsul

poti sa mai incerci si -v pentru depanare, cred ca stii
Post Reply