سلام دوستان من برای تست درگاه توی php از payping استفاده کردم
طبق مستندات کدهارو نوشتم و توکن هم ایجاد کردم ولی وقتی روی پرداخت میزنم صفحه سفید نمایش میده
payment.php
<?php
/* دریافت مبلغ از فرم ساخته شده. */
$price = intval( $_POST['price'] );
/* clientRefId: در صورت استفاده در حالت غیر دمو بهتر است شماره فاکتور در نظر گرفته شود. */
if( isset( $_POST['clientRefId'] ) ){
$clientRefId = $_POST['clientRefId'];
}else{
$clientRefId = "example@gmail.com";
}
/* payerIdentity: شماره موبایل باشد، در غیر اینصورت ایمیل استفاده شود. */
if( isset( $_POST['Mobile'] ) ){
$payerIdentity = $_POST['Mobile'];
}elseif( isset( $_POST['clientRefId'] ) ){
$payerIdentity = $_POST['clientRefId'];
}else{
$payerIdentity = time();
}
if( isset( $_POST['Description']) ){
$desc = $_POST['Description'];
}else{
$desc = '';
}
/* توکن دریافتی از سایت payping.ir | بجای Token توکن خود را قرار دهید. */
$TokenCode = "989lkhE6AnlNvF895iD-Q4Eqs3M77fPhgssot3LOYRAUro";
/* آدرس صفحه برگشت کاربر بعد از صفحه پرداخت | بجای domain.com آدرس سایت خود را قرار دهید. */
$returnUrl = "htps://localhost/verify.php";
$data = array(
'clientRefId' => $clientRefId,
'payerIdentity' => $payerIdentity,
'price' => $price,
'Description' => $desc,
'returnUrl' => $returnUrl
);
try{
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.payping.ir/v2/pay",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 45,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => array(
"accept: application/json",
"authorization: Bearer " . $TokenCode,
"cache-control: no-cache",
"content-type: application/json"
),
)
);
$response = curl_exec( $curl );
$header = curl_getinfo( $curl );
$err = curl_error( $curl );
curl_close( $curl );
if( $err ){
$msg = 'کد خطا: CURL#' . $er;
$erro = 'در اتصال به درگاه مشکلی پیش آمد.';
return false;
}else{
if( $header['http_code'] == 200 ){
$response = json_decode( $response, true );
if( isset( $response ) and $response != '' ){
$response = $response['code'];
/* ارسال به درگاه پرداخت با استفاده از کد ارجاع */
$GoToIPG = 'https://api.payping.ir/v2/pay/gotoipg/' . $response;
header( 'Location: ' . $GoToIPG );
}else{
$msg = 'تراکنش ناموفق بود - شرح خطا: عدم وجود کد ارجاع';
}
}elseif($header['http_code'] == 400){
$msg = 'تراکنش ناموفق بود، شرح خطا: ' . $response;
}else{
$msg = 'تراکنش ناموفق بود، شرح خطا: ' . $header['http_code'];
}
}
}catch(Exception $e){
$msg = 'تراکنش ناموفق بود، شرح خطا سمت برنامه شما: ' . $e->getMessage();
}
verify.php
<?php
if( isset( $_POST['refid'] ) ){
$refid = $_POST['refid'];
}else{
$refid = 0;
}
/* بجای 1000 مبلغ پرداختی خود را قرار دهید، به تومان */
$Amount = 1000; // toman
/* توکن دریافتی از سایت payping.ir | بجای Token توکن خود را قرار دهید. */
$TokenCode = "Token";
$data = array(
'amount' => $Amount,
'refId' => $refid
);
try{
$curl = curl_init();
curl_setopt_array( $curl, array(
CURLOPT_URL => "https://api.payping.ir/v2/pay/verify",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 45,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => array(
"accept: application/json",
"authorization: Bearer " . $TokenCode,
"cache-control: no-cache",
"content-type: application/json",
),
) );
$response = curl_exec( $curl );
$err = curl_error( $curl );
$header = curl_getinfo( $curl );
curl_close( $curl );
if($err){
$msg = 'خطا در ارتباط به پیپینگ :شرح خطا' . $err;
}else{
if($header['http_code'] == 200){
$response = json_decode( $response, true );
if( isset($refid) and $refid != '' ){
$msg = ' تراکنش موفق بود: ' . $refid;
$outp['msg'] = $msg;
}else{
$msg = 'متافسانه سامانه قادر به دریافت کد پیگیری نمیباشد! نتیجه درخواست: ' . $header['http_code'];
}
}elseif($header['http_code'] == 400){
$msg = ' تراکنش ناموفق بود، شرح خطا: ' . $response;
$outp['msg'] = $msg;
}else{
$msg = ' تراکنش ناموفق بود، شرح خطا: ' . $header['http_code'];
}
}
}catch( Exception $e ){
$msg = ' تراکنش ناموفق بود، شرح خطا سمت برنامه شما: ' . $e->getMessage();
} ?>
<html>
<head>
<title>وضعیت پرداخت درگاه پرداخت پیپینگ</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style type="text/css">
*{
box-sizing: border-box;
}
body{
font-family: tahoma;
font-size: 14px;
direction: rtl;
}
.alert{
width: 320px;
font-family: tahoma;
margin: auto;
background-color: #172b4d;
color: #fff;
line-height: 2;
text-align: justify;
padding: 15px;
}
</style>
</head>
<body>
<div class="alert">
<?php echo $msg; ?>
</div>
</body>
</html>
cart.php
<?php
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo '<div>';
echo '<p>نام محصول: ' . $row["name"] . '</p>';
echo '<p>قیمت: ' . $row["price"] . '</p>';
echo '<p>تعداد: ' . $row["quantity"] . '</p>';
echo '</div>';
echo '<form action="payment.php" method="POST">';
echo '<input type="hidden" name="price" value="' . $row["price"] . '">';
echo '<input type="submit" name="pay" value="پرداخت">';
echo '</form>';
}
} else {
echo '<p>سبد خرید شما خالی است.</p>';
}
?>
جدول کارت
1 id Primary int(11) No None AUTO_INCREMENT Change Change Drop Drop
2 quantity int(11) No None Change Change Drop Drop
3 product_id int(11) No None Change Change Drop Drop
4 user_id int(11) No None
جدول محصول
1 id Primary int(11) No None AUTO_INCREMENT Change Change Drop Drop
2 name varchar(255) utf8mb4_general_ci No None Change Change Drop Drop
3 oldprice int(11) No None Change Change Drop Drop
4 price int(11) No None Change Change Drop Drop
5 discount int(11) No None Change Change Drop Drop
6 inventory int(11) No None Change Change Drop Drop
7 image varchar(255) utf8mb4_general_ci No None Change Change Drop Drop
8 cat_name varchar(255) utf8mb4_general_ci No None Change Change Drop Drop
9 tag varchar(255) utf8mb4_general_ci No None Change Change Drop Drop
10 serial_number varchar(255) utf8mb4_general_ci
لطفا راهنمایی کنید دوستان
برای سفارشات هنوز جدولی نساختم
</body></html>
به Paradox کمک کنید تا مشکل خودش را حل کند؛ اینطور میتوانیم با هم پیشرفت کنیم.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟