Paradox
2 سال پیش توسط 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>