77 lines
1.6 KiB
PHP
77 lines
1.6 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the overtrue/wechat.
|
|
*
|
|
* (c) overtrue <i@overtrue.me>
|
|
*
|
|
* This source file is subject to the MIT license that is bundled
|
|
* with this source code in the file LICENSE.
|
|
*/
|
|
|
|
/**
|
|
* helpers.php.
|
|
*
|
|
* @author overtrue <i@overtrue.me>
|
|
* @copyright 2015 overtrue <i@overtrue.me>
|
|
*
|
|
* @see https://github.com/overtrue
|
|
* @see http://overtrue.me
|
|
*/
|
|
|
|
namespace EasyWeChat\Payment;
|
|
|
|
/**
|
|
* Generate a signature.
|
|
*
|
|
* @param array $attributes
|
|
* @param string $key
|
|
* @param string $encryptMethod
|
|
*
|
|
* @return string
|
|
*/
|
|
function generate_sign(array $attributes, $key, $encryptMethod = 'md5')
|
|
{
|
|
ksort($attributes);
|
|
|
|
$attributes['key'] = $key;
|
|
|
|
return strtoupper(call_user_func_array($encryptMethod, [urldecode(http_build_query($attributes))]));
|
|
}
|
|
|
|
/**
|
|
* Get client ip.
|
|
*
|
|
* @return string
|
|
*/
|
|
function get_client_ip()
|
|
{
|
|
if (!empty($_SERVER['REMOTE_ADDR'])) {
|
|
$ip = $_SERVER['REMOTE_ADDR'];
|
|
} else {
|
|
// for php-cli(phpunit etc.)
|
|
$ip = defined('PHPUNIT_RUNNING') ? '127.0.0.1' : gethostbyname(gethostname());
|
|
}
|
|
|
|
return filter_var($ip, FILTER_VALIDATE_IP) ?: '127.0.0.1';
|
|
}
|
|
|
|
/**
|
|
* Get current server ip.
|
|
*
|
|
* @return string
|
|
*/
|
|
function get_server_ip()
|
|
{
|
|
if (!empty($_SERVER['SERVER_ADDR'])) {
|
|
$ip = $_SERVER['SERVER_ADDR'];
|
|
} elseif (!empty($_SERVER['SERVER_NAME'])) {
|
|
$ip = gethostbyname($_SERVER['SERVER_NAME']);
|
|
} else {
|
|
// for php-cli(phpunit etc.)
|
|
$ip = defined('PHPUNIT_RUNNING') ? '127.0.0.1' : gethostbyname(gethostname());
|
|
}
|
|
|
|
return filter_var($ip, FILTER_VALIDATE_IP) ?: '127.0.0.1';
|
|
}
|