نمایش نتایج 1 تا 2 از 2

نام تاپیک: درخواست راهنمایی برای متصل کردن سایت به درگاه پرداخت اینترنتی پارسیان

  1. #1

    درخواست راهنمایی برای متصل کردن سایت به درگاه پرداخت اینترنتی پارسیان

    با سلام
    بنده برای راه اندازی درگاه پرداخت اینترنتی پارسیان با مستندات جدید دچار مشکل شدم.

    لطفا هر کسی از دوستان میتونه کمک کنه تا این فایل رو با مستندات جدید ویرایش کنم و بر روی سایت نصب کنم.

    مستندات جدید درگاه پارسیان به همراه فایل در ادامه به پیوست قرار میدم.باتشکر


    <?phprequire_once 'functions.class.php';
    require_once '../funcs/mellat_lib/nusoap.php';


    class Parsian{
    private $_pinCode,
    $_client,
    $_gatewayURL,
    $_formURL,
    $_callBackURL,
    $_gatwayName;


    public function __construct(){
    global $options;

    $this->_gatwayName = _e('GATEWAY_PARSIAN', true);


    $this->_pinCode = $options->PARSIAN_PINCODE;
    $this->_gatewayURL = 'https://pec.shaparak.ir/pecpaymentgateway/eshopservice.asmx?wsdl';
    $this->_formURL = 'https://pec.shaparak.ir/pecpaymentgateway?au=';
    $this->_callBackURL = usersroot() . 'parsian_callback.php';


    $this->_client = new nusoap_client($this->_gatewayURL, 'wsdl');
    }


    public function send_user_to_parsian($price, $orderId, $userId, $desc = '' ){
    global $db;


    $amount = (int) $price * 10;


    $parameters = array(
    'pin' => $this->_pinCode,
    'orderId' => $orderId,
    'amount' => $amount,
    'authority' => 0,
    'status' => 1,
    'callbackUrl' => $this->_callBackURL,
    );
    $params = array($parameters);
    echo $this->connecting_message();
    $result = $this->_client->call('PinPaymentRequest', $params);
    if($this->_client->fault){
    echo $this->connection_failure_message();
    } else {
    $err = $this->_client->getError();
    if($err){
    echo $this->connection_failure_message();
    }else{
    $authority = $result['authority'];
    $status = $result['status'];


    if ($authority > 0 && $status == 0 )
    {


    $pay = $this->insertPayment($orderId, null, $price, $authority, $userId );
    if($pay){
    $url = $this->_formURL . $authority;
    Functions::redirect($url,1);
    }else{
    echo $this->connection_failure_message(666);
    }
    }else{
    echo $this->connection_failure_message($status);
    }
    }
    }


    }


    public function isPaidDone(){
    if( isset($_GET['au']) && isset($_GET['rs']) && !empty($_GET['au']) && trim($_GET['au']))
    {
    if( (int) $_GET['rs'] === 0 ){
    return true;
    }
    }
    return false;
    }


    public function insertPayment($saleOrderId, $saleReferenceId, $price, $refId, $userId, $done = 1, $settled = 1, $kind = 7){
    global $db;
    try
    {
    $sql = " INSERT INTO tbl_online_payments (user_id, price, sale_order_id, sale_refrence_id, ref_id, done, setteled, kind, date_created)
    VALUES (:userId, :price ,:saleOrderId, :saleRefrenceId, :refId, :done, :setteled, :kind, :dateCreated)";
    $stmt = $db->prepare($sql);
    $stmt->execute(
    array(
    ':userId' => $userId,
    ':price' => $price,
    ':saleOrderId' => $saleOrderId,
    ':saleRefrenceId' => $saleReferenceId,
    ':refId' => $refId,
    ':done' => $done,
    ':setteled' => $settled,
    ':kind' => $kind,
    ':dateCreated' => date("Y-m-d H:i:s")
    )
    );
    return true;
    }catch(PDOException $e){
    return false;
    }
    }


    public function findReturnedPayment($refId)
    {
    global $db;
    $sql = " SELECT * FROM tbl_online_payments WHERE ref_id=:refId AND kind=:kind AND done=1 ORDER BY id DESC LIMIT 1";
    $stmt = $db->prepare($sql);


    $stmt->bindValue(':refId', $refId);
    $stmt->bindValue(':kind', 7);


    $stmt->execute();
    if($stmt->rowCount() > 0)
    return $stmt->fetch(PDO::FETCH_OBJ);
    else
    return false;
    }


    public function updatePayment()
    {

    }
    public function verifyRequest($authority){
    $parameters = array(
    'pin' => $this->_pinCode,
    'authority' => $authority,
    'status' => 1
    );
    $params = array($parameters);
    $result = $this->_client->call('PinPaymentEnquiry', $params);
    if($this->_client->fault){
    return false;
    }else{
    $err = $this->_client->getError();
    if($err){
    return false;
    }else{
    return $result;
    }
    }
    }


    public function reversalRequest($saleOrderId){
    $parameters = array(
    'pin' => $this->_pinCode,
    'orderId' => time(),
    'orderToReversal' => $saleOrderId,
    );
    $params = array($parameters);


    $result = $this->_client->call('PinReversal', $params);

    if($this->_client->fault){
    return false;
    }else{
    $err = $this->_client->getError();
    if($err){
    return false;
    }else{
    return (int) $result['status'];
    }
    }
    }


    public function settlementRequest($saleOrderId, $saleReferenceId){
    $parameters = array(
    'terminalId' => $this->_terminalId,
    'userName' => $this->_username,
    'userPassword' => $this->_password,
    'orderId' => time(),
    'saleOrderId' => $saleOrderId,
    'saleReferenceId' => $saleReferenceId
    );


    $result = $this->_client->call('bpReversalRequest', $parameters, $this->_namespace);

    if($this->_client->fault){
    return false;
    }else{
    $err = $this->_client->getError();
    if($err){
    return false;
    }else{
    return $result;
    }
    }
    }


    public function CheckBPMStatus($errCode){
    switch ($errCode)
    {
    case 1:
    $tmess = _e('UNDEFINED_STATUS', true);
    break;
    case 20:
    $tmess = _e('INVALID_PIN', true);
    break;
    case 22:
    $tmess= _e('INVALID_PIN_IP', true);
    break;
    case 30:
    $tmess= _e('REUSED_TRANSACTION_CODE', true);
    break;
    case 34:
    $tmess= _e('REUSED_TRANSACTION_CODE', true);
    break;
    case 666:
    $tmess= _e('INVALID_TRANSACTION_CODE', true);
    break;
    default:
    $tmess= _e('UNDEFINED_STATUS', true);
    break;
    }
    return $tmess;
    }


    private function connecting_message(){
    $output = "


    <div class='payment-return' id='connecting' style='padding-top:50px' >
    <div class='container-fluid payment-info'>
    <div class='row'>
    <div class='span12 mini-next-line text-center'>
    <div class='payment-logo'> <img src='../images/payment-methods/parsian.png' width='120'> </div>
    <p class='big-msg'> " . _e('CONNECTING_TO', true, array('{%1%}' => $this->_gatwayName)) . " </p>
    <p class='big-msg'> " . _e('PLEASE_WAIT', true) . " </p>
    <img src='../images/ajax-loader2.gif'>
    </div>
    </div>
    </div>
    </div>
    ";
    return $output;
    }


    private function connection_failure_message($errCode= ''){
    $output = "
    <script language='javascript' type='text/javascript'>
    document.getElementById('connecting').style.displa y = 'none';
    </script>
    <div class='payment-return' style='padding-top:50px'>
    <div class='container-fluid payment-fail'>
    <div class='row'>
    <div class='span12 mini-next-line text-center'>
    <div class='payment-logo'> <img src='../images/payment-methods/parsian.png' width='120'> </div>
    <p class='big-msg'> " . _e('CONNECTION_REFUSED', true) . " </p>
    ";

    if(!empty($errCode))
    $output .= $this->CheckBPMStatus($errCode);


    $output .= "
    <p class='big-msg'> <a class='btn btn-inverse' href=''> <i class='icon-refresh'></i> تلاش مجدد </a><div class='clearfix'></div> </p>
    </div>
    </div>
    </div>
    </div>
    <div class='next-line'></div>
    ";
    return $output;


    }


    }


    ?>
    فایل های ضمیمه فایل های ضمیمه

  2. #2
    کاربر تازه وارد آواتار hamid_computer3
    تاریخ عضویت
    شهریور 1391
    محل زندگی
    شیراز
    پست
    57

    نقل قول: درخواست راهنمایی برای متصل کردن سایت به درگاه پرداخت اینترنتی پارسیان

    درگاه پارسیان توسط کدام شرکت در دسترس هست؟

تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: دوشنبه 12 تیر 1391, 17:40 عصر
  2. خطا در صفحات متصل به بانک اطلاعاتی بعد از آپلود سایت
    نوشته شده توسط baransky در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: دوشنبه 26 اردیبهشت 1390, 17:07 عصر
  3. پاسخ: 3
    آخرین پست: دوشنبه 19 مهر 1389, 17:01 عصر
  4. بدست آوردن مسیر بانک اطلاعاتی متصل به ODBC
    نوشته شده توسط Morteza Manafpour در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: یک شنبه 24 مهر 1384, 15:26 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •