Перейти к содержимому


Фото
- - - - -

Не появляется кнопка PayKeeper в платежной системе


  • Чтобы отвечать, сперва войдите на форум
6 ответов в теме

#1 megauser

megauser
  • Пользователь
  • 127 сообщений
  • Дизайн, Заказчик, Пользователь
  • Откуда:Россия

Опубликовано 22.01.2020 - 22:40

Кто сталкивался с платежной системой PayKeeper? 

Закинул модуль в папку payment 

Добавил способ оплаты, все отлично, при попытке заказа пишет что к оплате, (сумма) 

 

А самой кнопки оплатить нет.



#2 megauser

megauser
  • Пользователь
  • 127 сообщений
  • Дизайн, Заказчик, Пользователь
  • Откуда:Россия

Опубликовано 22.01.2020 - 22:46

<?php

require_once('api/Simpla.php');

class PayKeeper extends Simpla
{	
	public function checkout_form($order_id, $button_text = null)
	{
		if(empty($button_text))
			$button_text = 'Перейти к оплате';
		
		$order = $this->orders->get_order((int)$order_id);
		$payment_method = $this->payment->get_payment_method($order->payment_method_id);
		$payment_settings = $this->payment->get_payment_settings($payment_method->id);
		
		$price = $this->money->convert($order->total_price, $payment_method->currency_id, false);
		
		$success_url = $this->config->root_url.'/order/'.$order->url;
		
		$fail_url = $this->config->root_url.'/order/'.$order->url;


//////////////////////////////////////
      	$phone = preg_replace('/[^\d]/', '', $order->phone);
      	$phone = substr($phone, -min(10, strlen($phone)), 10);

      	$clientid = $order->user_id;


	$formdata = array(
		"phone" 	=> $phone,
		"clientid"	=> $clientid,
		"sum"		=> number_format($price, 2,'.',''),
		"orderid"	=> $order_id
	);


        //build the post string
        $poststring = "";
        foreach($formdata as $key => $val){
            $poststring .= urlencode($key) . "=" . urlencode($val) . "&";
        }
        // strip off trailing ampersand
        $poststring = substr($poststring, 0, -1);

	$url = $payment_settings['PAYKEEPER_PAYMENT_FORM_URL'];


	$html = '';	
        if( function_exists( "curl_init" )) {
        
            $CR = curl_init();
            curl_setopt($CR, CURLOPT_URL, $url);
            curl_setopt($CR, CURLOPT_POST, 1);
            curl_setopt($CR, CURLOPT_FAILONERROR, true); 
            curl_setopt($CR, CURLOPT_POSTFIELDS, $poststring);
            curl_setopt($CR, CURLOPT_RETURNTRANSFER, 1);
             
            curl_setopt($CR, CURLOPT_SSL_VERIFYPEER, 0);
            
            $result = curl_exec( $CR );
            
            $error = curl_error( $CR );
            if( !empty( $error )) {
              $html = "<br/><span class=message>"."INTERNAL ERROR:".$error."</span>";
              return false;
            }
            else {
	      $html = $result; 
            }

            curl_close( $CR );
        } else {
	  $payment_parameters = http_build_query(array( 
		"clientid"=>$clientid, 
		"orderid"=>$order_id, 
		"sum"=>number_format($price, 2,'.',''), 
		"phone"=>$phone));

	  $options = array("http"=>array( 
		"method"=>"POST", 
		"header"=>"Content-type: application/x-www-form-urlencoded", 
		"content"=>$payment_parameters 
	  )); 

	  $context = stream_context_create($options); 

	  $html = file_get_contents($url, false, $context);
        }
//////////////////////////////////////
		
		$button = $html;	

		return $button;
	}

}

Файл PayKeeper.php



#3 fancy-studio

fancy-studio
  • Пользователь
  • 95 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда::)

Опубликовано 23.01.2020 - 00:08

Судя по коду, контент подтягивается из настроек: $payment_settings['PAYKEEPER_PAYMENT_FORM_URL'];

 

а что указано в этом поле?



#4 megauser

megauser
  • Пользователь
  • 127 сообщений
  • Дизайн, Заказчик, Пользователь
  • Откуда:Россия

Опубликовано 23.01.2020 - 22:09

Судя по коду, контент подтягивается из настроек: $payment_settings['PAYKEEPER_PAYMENT_FORM_URL'];

 

а что указано в этом поле?

 

 

Ссылка на сервер их, где форма данная

 

ead0b973d661t.jpg


Изменено: megauser, 23.01.2020 - 22:09


#5 fancy-studio

fancy-studio
  • Пользователь
  • 95 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда::)

Опубликовано 23.01.2020 - 22:19

сложно так сказать. Скиньте адрес сайта, может в коде чего видно будет



#6 mishanya

mishanya
  • Фрилансер
  • 2 575 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 24.01.2020 - 15:54

может у вас cUrl не настроен?

if( function_exists( "curl_init" )) {


#7 megauser

megauser
  • Пользователь
  • 127 сообщений
  • Дизайн, Заказчик, Пользователь
  • Откуда:Россия

Опубликовано 24.01.2020 - 21:58

может у вас cUrl не настроен?

if( function_exists( "curl_init" )) {

 

а где он настраивается? на стороне клиента? ну в Личном кабинете PayKeeper? 






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых