fixed order verify

This commit is contained in:
Mike Schwörer 2018-11-12 14:49:01 +01:00
parent 36b9263730
commit 8e26cd6078
Signed by: Mikescher
GPG Key ID: D3C7172E0A70F8CF

View File

@ -123,7 +123,7 @@ function sendPOST($url, $body, $header)
if ($response->code != 200) throw new Exception("Repsponse code: " . $response->code); if ($response->code != 200) throw new Exception("Repsponse code: " . $response->code);
return $response->body; return $response->raw_body;
} }
function verifyOrderToken($tok) function verifyOrderToken($tok)
@ -136,26 +136,25 @@ function verifyOrderToken($tok)
$product = getConfig()['verify_api']['product_id']; $product = getConfig()['verify_api']['product_id'];
$acctoken = getConfig()['verify_api']['accesstoken']; $acctoken = getConfig()['verify_api']['accesstoken'];
if ($acctoken == '') $acctoken = refreshVerifyToken(); if ($acctoken == '' || $acctoken == null || $acctoken == false) $acctoken = refreshVerifyToken();
$url = 'https://www.googleapis.com/androidpublisher/v3/applications/'.$package.'/purchases/products/'.$product.'/tokens/'.$tok.'?access_token='.$acctoken; $url = 'https://www.googleapis.com/androidpublisher/v3/applications/'.$package.'/purchases/products/'.$product.'/tokens/'.$tok.'?access_token='.$acctoken;
$response = $builder = \Httpful\Request::get($url)->send();
$obj = json_decode($response->raw_body, true);
$json = sendPOST($url, "", []); if ($response->code != 401 && ($obj === null || $obj === false))
$obj = json_decode($json);
if ($obj === null || $obj === false)
{ {
reportError('verify-token returned NULL'); reportError('verify-token returned NULL');
return false; return false;
} }
if (isset($obj['error']) && isset($obj['error']['code']) && $obj['error']['code'] == 401) // "Invalid Credentials" -- refresh acces_token if ($response->code == 401 || isset($obj['error']) && isset($obj['error']['code']) && $obj['error']['code'] == 401) // "Invalid Credentials" -- refresh acces_token
{ {
$acctoken = refreshVerifyToken(); $acctoken = refreshVerifyToken();
$url = 'https://www.googleapis.com/androidpublisher/v3/applications/'.$package.'/purchases/products/'.$product.'/tokens/'.$tok.'?access_token='.$acctoken; $url = 'https://www.googleapis.com/androidpublisher/v3/applications/'.$package.'/purchases/products/'.$product.'/tokens/'.$tok.'?access_token='.$acctoken;
$json = sendPOST($url, "", []); $response = $builder = \Httpful\Request::get($url)->send();
$obj = json_decode($json); $obj = json_decode($response->raw_body, true);
if ($obj === null || $obj === false) if ($obj === null || $obj === false)
{ {
@ -185,10 +184,10 @@ function refreshVerifyToken()
'&client_secret='.getConfig()['verify_api']['clientsecret']; '&client_secret='.getConfig()['verify_api']['clientsecret'];
$json = sendPOST($url, "", []); $json = sendPOST($url, "", []);
$obj = json_decode($json); $obj = json_decode($json, true);
file_put_contents('.verify_accesstoken', $obj['access_token']); file_put_contents('.verify_accesstoken', $obj['access_token']);
return $obj->access_token; return $obj['access_token'];
} }
function api_return($http_code, $message) function api_return($http_code, $message)
@ -207,7 +206,7 @@ function try_json($str, $path)
{ {
try try
{ {
$o = json_decode($str); $o = json_decode($str, true);
foreach ($path as $p) $o = $o[$p]; foreach ($path as $p) $o = $o[$p];
return $o; return $o;
} }
@ -215,4 +214,16 @@ function try_json($str, $path)
{ {
return null; return null;
} }
} }
//#################################################################################################################
if (getConfig()['global']['prod']) {
ini_set('display_errors', 0);
ini_set('log_errors', 1);
} else {
error_reporting(E_STRICT);
ini_set('display_errors', 1);
}
//#################################################################################################################