ببخشید، آیا این کدی که من دارم استفاده می کنم مشکلی داره؟
می شه اگه امکانش هست تست کنید؟ چون من همش تو مرحله verify دارم invalid payment می گیریم.
تا حدی برای خودم ساده سازیش کردم، منتهی به نظر می رسی جایی از کد رو زدم نابود کردم! اگه کسی متوجه مشکل شد ممنون می شم راهنمایی کنه.
کد PHP:
<?php$pin = '...';$amount = 1000;$orderId = 1;$callbackUrl = "http://localhost/SibaPal/verify.php?orderId={$orderId}";
$res = request($pin, $amount, $callbackUrl, $orderId);if (empty($res)) { echo 'Unable to connect to server.';} elseif (intval($res['result']) == 1) { $au = $res['au']; $form = $res['form']; echo "<div style='display:none'>{$form}</div><script>document.siba.submit();</script>";} else { $msg = urldecode($res['msg']); echo "<meta charset=utf-8>{$msg}";}
function request($pin, $amount, $callbackUrl, $orderId){ $params = array( 'pin' => $pin, 'amount' => $amount, 'callback' => urlencode($callbackUrl), 'order_id' => $orderId ); $params = json_encode($params);
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://www.sibapal.com/eserviceapi/request?params={$params}"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $res = curl_exec($ch); curl_close($ch);
return json_decode($res, TRUE);}
کد PHP:
<?php$pin = '...';$amount = 1000;$orderId = intval($_GET['orderId']);$au = '...';$bankReturn = $_POST + $_GET;
$res = verify($pin, $amount, $au, $orderId, $bankReturn);if (empty($res)) { echo 'Unable to connect to server.';} elseif (intval($res['result']) == 1) { $bankAu = $res['bank_au']; echo $bankAu;} else { $msg = urldecode($res['msg']); echo "<meta charset=utf-8>{$msg}";}
function verify($pin, $amount, $au, $orderId, $bankReturn){ $params = array( 'pin' => $pin, 'amount' => $amount, 'au' => $au, 'order_id' => $orderId, 'bank_return' => base64_encode(json_encode($bankReturn)) ); $params = json_encode($params);
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://www.sibapal.com/eserviceapi/verify?params={$params}"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $res = curl_exec($ch); curl_close($ch);
return json_decode($res, TRUE);}
کد ها درست Paste نمی شن تو پست، فایل ها رو Attach کردم.
sibapal.zip