Paradox
8 ماه پیش توسط Paradox مطرح شد
0 پاسخ

تست درگاه پیپینگ

سلام دوستان من برای تست درگاه توی 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 کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام