Plugin Directory

Changeset 3167957


Ignore:
Timestamp:
10/13/2024 11:36:02 AM (18 months ago)
Author:
payping
Message:

update to payping v3

Location:
gateway-payping-easy-digital-downloads
Files:
7 added
3 edited

Legend:

Unmodified
Added
Removed
  • gateway-payping-easy-digital-downloads/trunk/edd-payping.php

    r2661697 r3167957  
    22/*
    33Plugin Name: Gateway PayPing Easy Digital Downloads
    4 Version: 1.2.0
     4Version: 1.3.0
    55Description:  افزونه درگاه پرداخت پی‌پینگ برای Easy Digital Downloads
    66Plugin URI: https://www.payping.ir/
  • gateway-payping-easy-digital-downloads/trunk/gateways/payping.php

    r2661697 r3167957  
    5858            }
    5959            global $edd_options;
    60             @ session_start();
     60       
    6161            $payment = $this->insert_payment( $purchase_data );
    62 
     62           
    6363            if ( $payment ) {
    6464
     
    7070                if ( edd_get_currency() == 'IRR' or strtoupper(edd_get_currency()) == 'RIAL' or strtoupper(edd_get_currency()) == 'ريال' )
    7171                    $amount = $amount / 10; // Return back to original one.
    72 
     72               
    7373                $data = array(
    74                     'clientRefId'           =>  $payment,
    75                     'payerName'             =>  $full_name,
    76                     'payerIdentity'         =>  $purchase_data['user_email'],
     74                    'PayerName'             =>  $full_name,
    7775                    'Amount'                =>  $amount,
     76                    'PayerIdentity'         =>  $purchase_data['user_email'],
     77                    'ReturnUrl'             =>  $callback,
    7878                    'Description'           =>  $desc,
    79                     'ReturnUrl'             =>  $callback
     79                    'clientRefId'           =>  (string) $payment,
     80                    'NationalCode'  => ''
    8081                );
    8182               
     
    8788                    'blocking' => true,
    8889                    'headers' => array(
     90                      'X-Platform'         => 'EDD',
     91                      'X-Platform-Version' => '1.3.0',
    8992                      'Authorization' => 'Bearer '.$tokenCode,
    9093                      'Content-Type'  => 'application/json',
     
    9396                    'cookies' => array()
    9497                );
    95 
    96                     $response = wp_remote_post('https://api.payping.ir/v2/pay', $args);
    97                     $res_header = wp_remote_retrieve_headers($response);
    98                     $payping_id_request = $res_header['x-paypingrequest-id'];
    99                
     98                    $response = wp_remote_post('https://api.payping.ir/v3/pay', $args);
     99                    $code = wp_remote_retrieve_response_code( $response );
     100                   
    100101                    /* Call Function Show Debug In Console */
    101102                    $this->WC_GPP_Debug_Log($edd_options['payping_header_Debug'], $response, "Pay");
    102                
     103                   
    103104                    if ( is_wp_error($response) ) {
    104                         edd_insert_payment_note( $payment, 'شناسه درخواست پی‌پینگ: '.$payping_id_request );
     105                        edd_insert_payment_note( $payment, 'شناسه درخواست پی‌پینگ: '.$code );
    105106                        edd_update_payment_status( $payment, 'failed' );
    106107                        edd_set_error( 'payping_connect_error', 'در اتصال به درگاه مشکلی پیش آمد.' );
     
    108109                        return false;
    109110                    }else{
    110                         $code = wp_remote_retrieve_response_code( $response );
     111                       
    111112                        if($code === 200){
    112113                            if (isset($response["body"]) and $response["body"] != '') {
    113114                                $code_pay = wp_remote_retrieve_body($response);
    114115                                $code_pay =  json_decode($code_pay, true);
    115                                 edd_insert_payment_note( $payment, 'کد تراکنش پی‌پینگ: '.$code_pay );
    116                                 edd_update_payment_meta( $payment, 'payping_code', $code_pay );
    117                                 $_SESSION['pp_payment'] = $payment;
    118                                 wp_redirect(sprintf('https://api.payping.ir/v2/pay/gotoipg/%s', $code_pay["code"]));
     116                               
     117                                edd_insert_payment_note( $payment, 'کد تراکنش پی‌پینگ: '.$code_pay["paymentCode"] );
     118                                edd_update_payment_meta( $payment, 'payping_code', $code_pay["paymentCode"] );
     119                                wp_redirect($code_pay["url"]);
    119120                                exit;
    120121                            }else{
     
    140141        public function verify() {
    141142            global $edd_options;
    142 
    143             if ( isset( $_REQUEST['refid'] ) ) {
    144                 $refid = sanitize_text_field( $_REQUEST['refid'] );
    145                 $payment = edd_get_payment( $_SESSION['pp_payment'] );
    146                 unset( $_SESSION['pp_payment'] );
    147                 if ( ! $payment ) {
    148                     $payment = edd_get_payment( sanitize_text_field( $_REQUEST['clientrefid'] ) );
    149                 }
    150                 if ( $payment->status == 'complete' ) return false;
    151 
    152                 $amount = intval( edd_get_payment_amount( $payment->ID ) ) ;
    153                 if ( edd_get_currency() == 'IRR' or strtoupper(edd_get_currency()) == 'RIAL' or strtoupper(edd_get_currency()) == 'ريال' )
    154                     $amount = $amount / 10; // Return back to original one.
    155 
    156                 $tokenCode = ( isset( $edd_options[ 'payping_tokenCode' ] ) ? $edd_options[ 'payping_tokenCode' ] : '' );
    157 
    158                 $data =  array(
    159                     'amount'            =>  $amount,
    160                     'refId'             =>  $refid
    161                 ) ;
    162                
    163                         $args = array(
    164                             'body' => json_encode($data),
    165                             'timeout' => '45',
    166                             'redirection' => '5',
    167                             'httpsversion' => '1.0',
    168                             'blocking' => true,
    169                             'headers' => array(
    170                             'Authorization' => 'Bearer ' .$tokenCode,
    171                             'Content-Type'  => 'application/json',
    172                             'Accept' => 'application/json'
    173                             ),
    174                          'cookies' => array()
    175                         );
    176                     $response = wp_remote_post('https://api.payping.ir/v1/pay/verify', $args);
    177                    
    178                     /* Call Function Show Debug In Console */
    179                     $this->WC_GPP_Debug_Log($edd_options['payping_header_Debug'], $response, "Verify");
    180                
    181                     $res_header = wp_remote_retrieve_headers($response);
    182                     $payping_id_request = $res_header['x-paypingrequest-id'];
    183                     edd_empty_cart();
    184 
    185                     if ( version_compare( EDD_VERSION, '2.1', '>=' ) )
    186                         edd_set_payment_transaction_id( $payment->ID, $refid );                         
    187                
    188                     if ( is_wp_error($response) ) {
    189                         $Status = 'failed';
    190                         $Fault = 'wp-remote Error.';
    191                         $Message = 'خطا در ارتباط به پی‌پینگ : شرح خطا '.$payping_id_request;
    192                     }else{
     143           
     144            $paypingResponse = stripslashes($_REQUEST['data']);
     145            $responseData = json_decode($paypingResponse, true);
     146           
     147           
     148
     149            // Get refid
     150            if (isset($responseData['paymentRefId'])) {
     151                $refid = sanitize_text_field($responseData['paymentRefId']);
     152            }else{
     153                $refid = null;
     154            }
     155            $payment = edd_get_payment( $responseData['clientRefId'] );
     156           
     157           
     158            if ($_REQUEST['status'] == 0) {
     159                $Message = 'پرداخت انجام نشد. کاربر از صفحه پرداخت انصراف داده است!';
     160                edd_insert_payment_note( $payment->ID, $Message );
     161                edd_update_payment_meta( $payment->ID, 'payping_refid', $refid );
     162                edd_update_payment_status( $payment->ID, 'failed' );
     163                wp_redirect( get_permalink( $edd_options['failure_page'] ) );
     164            } else {
     165                if ( isset( $refid ) ) {
     166                    if ( $payment->status == 'complete' ) return false;
     167                   
     168                    $amount = intval( edd_get_payment_amount( $payment->ID ) ) ;
     169                   
     170                    if ( edd_get_currency() == 'IRR' or strtoupper(edd_get_currency()) == 'RIAL' or strtoupper(edd_get_currency()) == 'ريال' )
     171                        $amount = $amount / 10; // Return back to original one.
     172   
     173                    $tokenCode = ( isset( $edd_options[ 'payping_tokenCode' ] ) ? $edd_options[ 'payping_tokenCode' ] : '' );
     174   
     175                    $data =  array(
     176                        'Amount'            =>  $amount,
     177                        'PaymentRefId'              =>  $refid
     178                    ) ;
     179                   
     180                            $args = array(
     181                                'body' => json_encode($data),
     182                                'timeout' => '45',
     183                                'redirection' => '5',
     184                                'httpsversion' => '1.0',
     185                                'blocking' => true,
     186                                'headers' => array(
     187                                   'Authorization' => 'Bearer ' .$tokenCode,
     188                                   'Content-Type'  => 'application/json',
     189                                   'Accept' => 'application/json'
     190                                   ),
     191                             'cookies' => array()
     192                            );
     193                        $response = wp_remote_post('https://api.payping.ir/v3/pay/verify', $args);
     194                        $body = wp_remote_retrieve_body( $response );
     195                        $rbody = json_decode( $body, true );
     196
     197                       
     198                        /* Call Function Show Debug In Console */
     199                        $this->WC_GPP_Debug_Log($edd_options['payping_header_Debug'], $response, "Verify");
     200                   
     201                       
    193202                        $code = wp_remote_retrieve_response_code( $response );
    194                         if ( $code == 200 ) {
    195                             if (isset($refid) and $refid != '') {
    196                                 edd_insert_payment_note( $payment->ID, 'شماره تراکنش: '.$refid );
    197                                 edd_update_payment_meta( $payment->ID, 'payping_refid', $refid );
    198                                 edd_update_payment_status( $payment->ID, 'publish' );
    199                                 edd_send_to_success_page();
     203                        edd_empty_cart();
     204   
     205                        if ( version_compare( EDD_VERSION, '2.1', '>=' ) )
     206                            edd_set_payment_transaction_id( $payment->ID, $refid );                         
     207                   
     208                        if ( is_wp_error($response) ) {
     209                            $Status = 'failed';
     210                            $Fault = 'wp-remote Error.';
     211                            $Message = 'خطا در ارتباط به پی‌پینگ : شرح خطا '.$code;
     212                        }else{
     213                           
     214                            if ( $code == 200 ) {
     215                                if (isset($refid) and $refid != '') {
     216                                    edd_insert_payment_note( $payment->ID, 'شماره تراکنش: '.$refid );
     217                                    edd_update_payment_meta( $payment->ID, 'payping_refid', $refid );
     218                                    edd_update_payment_status( $payment->ID, 'complete' );
     219                                    $receipt_url = get_permalink( $edd_options['success_page'] ).'?id=' . $payment->ID . '&order=' . edd_get_payment_key($payment->ID);
     220                                    wp_redirect($receipt_url);
     221                                }else{
     222                                    $Message = 'متاسانه سامانه قادر به دریافت کد پیگیری نمی باشد! نتیجه درخواست : '.$code;
     223                                    edd_insert_payment_note( $payment->ID, $Message );
     224                                    edd_update_payment_meta( $payment->ID, 'payping_refid', $refid );
     225                                    edd_update_payment_status( $payment->ID, 'failed' );
     226                                    wp_redirect( get_permalink( $edd_options['failure_page'] ) );
     227                                }
    200228                            }else{
    201                                 $Message = 'متافسانه سامانه قادر به دریافت کد پیگیری نمی باشد! نتیجه درخواست : '.$payping_id_request;
     229                               
     230                                $Message = wp_remote_retrieve_response_message( $response );
    202231                                edd_insert_payment_note( $payment->ID, $Message );
    203232                                edd_update_payment_meta( $payment->ID, 'payping_refid', $refid );
    204233                                edd_update_payment_status( $payment->ID, 'failed' );
    205234                                wp_redirect( get_permalink( $edd_options['failure_page'] ) );
     235                                exit;
    206236                            }
    207                         }else{
    208                            
    209                             $Message = wp_remote_retrieve_response_message( $response );
    210                             edd_insert_payment_note( $payment->ID, $Message );
    211                             edd_update_payment_meta( $payment->ID, 'payping_refid', $refid );
    212                             edd_update_payment_status( $payment->ID, 'failed' );
    213                             wp_redirect( get_permalink( $edd_options['failure_page'] ) );
    214                             exit;
    215237                        }
    216                     }
    217 
    218             }
     238   
     239                }
     240            }
     241           
    219242        }
    220243
  • gateway-payping-easy-digital-downloads/trunk/readme.txt

    r2661697 r3167957  
    11=== Gateway PayPing Easy Digital Downloads ===
    22Contributors: payping, mahdisarani
    3 Tags: Easy Digital Downloads, edd, payment, payping, افزونه پرداخت, ووکامرس, ووکامرس فارسی, درگاه پرداخت, gateway, iran, persian, پی پینگ, pay ping
     3Tags: Easy Digital Downloads, edd, payment, payping
    44Donate link: https://payping.ir
    55Requires at least: 4.0.0
    6 Tested up to: 5.8
     6Tested up to: 6.6.2
    77Requires PHP: 7.0
    8 Stable tag: 1.2.0
     8Stable tag: 1.3.0
    99License: GPLv2 or later
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    18181- پوشه افزونه را در مسیر /wp-contetn/plugins قرار دهید.
    19192- از بخش افزونه‌ها افزونه را فعال کنید.
    20 3- از بخش پیکربندی توکن را وارد کنید.
     203- در پیشخوان وردپرس، مسیر : دانلود ها > پیکربندی تب پرداخت ها یا payments را انتخاب کنید
     214- در بخش تنظیمات درگاه پرداخت پی پینگ توکن و دیگر تنظیمات را انجام دهید
     225- وارد تب عمومی شوید و گزینه برگه ها را انتخاب کنید
     236- برگه های افزونه که نیاز به شورت کد دارند را در سایت خود ایجاد کرده و شورت کد ها را حتما در آن قرار دهید و برگه ای که ایجاد کرده اید را در تنظیمات افزونه انتخاب کنید و تغییرات را ذخیره کنید (برگه Receipt Page و برگه صفحه اصلی پرداخت الزامی میباشد و حتما باید شورت کدهای آن را قرار دهید)
    2124
    2225== Changelog ==
    23 release Plugin
    2426
    2527== 1.2.0 ==
     
    2729رفع مشکل عدم نمایش نام پرداخت کننده در پنل پی‌پینگ
    2830
    29 == Upgrade Notice ==
    30 Update
     31== 1.3.0 ==
     32ارتقا به نسخه v3 پی پینگ
     33
Note: See TracChangeset for help on using the changeset viewer.