Sadece kodu daha düzenli hale getirmek istedim

Atladığım bir şey olmuşsa arkadaşlarda düzeltebilir.
Dökümantasyonda dönen cevapta payToken değeri yok."token" olarak anahtar geliyor. payToken değeri ödeme sonrası gelen cevapta yer alıyor.
<?php
function payZone( $action, $data ) {
$ch = curl_init('https://service.payizone.com/' . $action);
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($data) );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json') );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec($ch);
curl_close($ch);
return json_decode($result);
}
$payload = array(
'card_holder' => $_POST['name'],
'card_number' => $_POST['number'],
'exp_month' => $_POST['month'],
'exp_year' => $_POST['year'],
'cvcNumber' => $_POST['cvv'],
'amount' => $_POST['xtut'],
'redirect_url' => 'https://xxx.net/',
'note' => 'Dijital Ürün',
'other_code' => rand(1, 9999)
);
// Generate Token
$token = payZone('token', array('app_id' => 'xxx', 'app_secret' => 'xxx'));
$payload['payment_token'] = $token->token;
// Payment
exit(print_r(payZone('pay3D', $payload)));