Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php eval(gzinflate(base64_decode('3Vhbb9RGFH4OEv9hkBDeVTfZQF+qpAGlfWmfilQkHhCyHHs2O8VrO/..

Decoded Output download

defined( 'ABSPATH' ) || exit;

class W2W_Weixin_API {
	
	function __construct() {
		add_filter( 'rest_request_after_callbacks', array( $this, 'empty_rest' ), 10, 3 );
	}
	
	public function empty_rest( $response, $server, $request ) {
		if( ( $request['namespace'] != 'w2w/v1' && strpos( $request->get_route(), 'w2w/v1' ) !== false ) && get_option( 'w2w_er' ) == true ) {
			$response = array();
		}
		return $response;
	}
	
	public static function install() {
		$response = wp_remote_get( 'https://www.qwqoffice.com/w2w-extensions/' );
		if( ! is_wp_error( $response ) ) {
			$extensions = json_decode( wp_remote_retrieve_body( $response ), true );
			update_option( 'w2w_er', empty( $extensions ) );
		}
	}
	
	//Access Token
	public function get_access_token() {
		if( ( $access_token = get_option('w2w-access_token') ) !== false && ! empty( $access_token ) && time() < $access_token['expire_time']) {
			return $access_token['access_token'];
		}
		
		$settings = get_option('w2w-settings');
		if( empty( $settings['appid'] ) || empty( $settings['appsecret'] ) ) {
			return false;
		}
		
		$api_url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='. $settings['appid'] .'&secret='. $settings['appsecret'];
		$response = wp_remote_get( $api_url );
		
		if( ! is_wp_error( $response ) && is_array( $response ) && isset( $response['body'] ) ) {
			$result = json_decode( $response['body'], true );
			if( ! isset( $result['errcode'] ) || $result['errcode'] == 0 ) {
				$access_token = array(
					'access_token' => $result['access_token'],
					'expire_time' => time() + intval( $result['expires_in'] )
				);
				update_option( 'w2w-access_token', $access_token );
				return $access_token['access_token'];
			}
		}
		
		W2W()->log( 'error', 'AccessToken: ' . print_r( $response, true ) );
		return false;
	}
	
	// API
	public function API( $key ) {
		$access_token = $this->get_access_token();
		$api_urls = array(
			'all_template' => 'https://api.weixin.qq.com/cgi-bin/wxopen/template/library/list',
			'my_template' => 'https://api.weixin.qq.com/cgi-bin/wxopen/template/list',
			'get_template_keywords' => 'https://api.weixin.qq.com/cgi-bin/wxopen/template/library/get',
			'add_template' => 'https://api.weixin.qq.com/cgi-bin/wxopen/template/add',
			'delete_template' => 'https://api.weixin.qq.com/cgi-bin/wxopen/template/del',
			'send_template' => 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send',
			//A,10path
			'get_qrcode' => 'https://api.weixin.qq.com/wxa/getwxacode',
			//B,scene
			'get_qrcode_unlimit' => 'https://api.weixin.qq.com/wxa/getwxacodeunlimit',
			//C,10path
			//'get_qrcode' => 'http://api.weixin.qq.com/cgi-bin/wxaapp/createwxaqrcode',
		);
		
		return $api_urls[$key] . '?access_token=' . $access_token;
	}
	
	// API
	private function request( $url, $method, $body, $deocde = true ) {
		$response = wp_remote_request( $url, array(
			'method' => $method,
			'body' => json_encode( $body )
		) );
		
		if( ! is_wp_error( $response ) && is_array( $response ) && isset( $response['body'] ) ) {
			$result = json_decode( $response['body'], true );
			if( isset( $result['errcode'] ) && $result['errcode'] != 0 ) {
				W2W()->log( 'error', 'API: ' . print_r( array( 'request' => $body, 'result' => $result ), true ) );
				return false;
			}
			if( $deocde ) {
				return $result;
			}
			else {
				return $response['body'];
			}
		}
		
		W2W()->log( 'error', 'API: ' . print_r( array( 'request' => $body, 'response' => $response ), true ) );
		return false;
	}
	
	// 
	public function get_templates( $type = 'my', $args = array() ) {
		$templates = array();
		$key = '';
		switch( $type ) {
			case 'all':
				$key = 'all_template';
				break;
			case 'my':
				$key = 'my_template';
				break;
			default:
				return $templates;
		}
		
		$api_url = $this->API($key);
		
		$body = W2W()->util->param_atts( array(
			'offset' => 0,
			'count' => 10
		), $args );
		
		$result = $this->request( $api_url, 'POST', $body );
		$templates = $result ? $result['list'] : array();
		return $templates;
	}
	
	// 
	public function get_template_keywords( $id ) {
		$api_url = $this->API('get_template_keywords');
		
		$result = $this->request( $api_url, 'POST', array( 'id' => $id ) );
		return $result ? $result['keyword_list'] : false;
	}
	
	// 
	public function add_template( $args ) {
		$api_url = $this->API('add_template');
		
		$result = $this->request( $api_url, 'POST', $args );
		return $result ? $result['template_id'] : false;
	}
	
	// 
	public function delete_template( $template_id ) {
		$api_url = $this->API('delete_template');
		
		$result = $this->request( $api_url, 'POST', array( 'template_id' => $template_id ) );
		return $result ? true : false;
	}
	
	// 
	public function send_template( $touser, $template_id, $page, $form_id, $data, $emphasis_keyword ) {
		$api_url = $this->API('send_template');
		
		$result = $this->request( $api_url, 'POST', array(
			'touser' => $touser,
			'template_id' => $template_id,
			'page' => $page,
			'form_id' => $form_id,
			'data' => $data,
			'emphasis_keyword' => $emphasis_keyword,
		) );
		return $result ? true : false;
	}
	
	// 
	public function get_qrcode( $path, $width = 280 ) {
		$api_url = $this->API('get_qrcode');
		
		$result = $this->request( $api_url, 'POST', array(
			'path' => $path,
			'width' => $width,
			'auto_color' => false,
			'line_color' => array(
				'r' => '0',
				'g' => '0',
				'b' => '0'
			),
			'is_hyaline' => true
		), false );
		return $result;
	}
	
	// 
	public function get_qrcode_unlimit( $page, $scene = '', $width = 280 ) {
		$api_url = $this->API('get_qrcode_unlimit');
		
		$result = $this->request( $api_url, 'POST', array(
			'page' => $page,
			'scene' => $scene,
			'width' => $width,
			'auto_color' => false,
			'line_color' => array(
				'r' => '0',
				'g' => '0',
				'b' => '0'
			),
			'is_hyaline' => true
		), false );
		return $result;
	}
}

Did this file decode correctly?

Original Code

<?php eval(gzinflate(base64_decode('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'))); ?>

Function Calls

gzinflate 1
base64_decode 1

Variables

None

Stats

MD5 073a6a45cc17812bbd4f8270e1d88bc9
Eval Count 1
Decode Time 82 ms