updated GuzzleHttp\Client To Laravel Http Facades

This commit is contained in:
兔姬桑
2020-10-07 12:06:08 +08:00
parent 60065e01d1
commit 2ab08e3717
13 changed files with 109 additions and 134 deletions

View File

@@ -5,7 +5,7 @@ namespace App\Components;
use Exception;
use GeoIp2\Database\Reader;
use GeoIp2\Exception\AddressNotFoundException;
use GuzzleHttp\Client;
use Http;
use IP2Location\Database;
use Ip2Region;
use ipip\db\City;
@@ -35,14 +35,13 @@ class IP
// 通过api.ip.sb查询IP地址的详细信息
public static function IPSB($ip)
{
$request = (new Client(['timeout' => 15]))->get('https://api.ip.sb/geoip/'.$ip);
$message = json_decode($request->getBody(), true);
$response = Http::timeout(15)->get('https://api.ip.sb/geoip/'.$ip);
if ($request->getStatusCode() === 200) {
return $message;
if ($response->ok()) {
return $response->json();
}
Log::error('解析IPv6异常'.$ip.PHP_EOL.var_export($request, true));
Log::error('解析IPv6异常'.$ip);
return false;
}
@@ -107,10 +106,10 @@ class IP
public static function TaoBao(string $ip)
{
// 依据 http://ip.taobao.com/instructions 开发
$request = (new Client(['timeout' => 15]))->get('http://ip.taobao.com/outGetIpInfo?ip='.$ip.'&accessKey=alibaba-inc');
$message = json_decode($request->getBody(), true);
$response = Http::timeout(15)->get('http://ip.taobao.com/outGetIpInfo?ip='.$ip.'&accessKey=alibaba-inc');
if ($request->getStatusCode() === 200) {
if ($response->ok()) {
$message = $response->json();
if ($message['code'] === 0) {
return [
'country' => $message['data']['country'] === "XX" ? '' : $message['data']['country'],
@@ -119,9 +118,9 @@ class IP
];
}
Log::error('【淘宝IP库】返回错误信息'.$ip.PHP_EOL.var_export($message['msg'], true));
Log::error('【淘宝IP库】返回错误信息'.$ip.PHP_EOL.$message['msg']);
} else {
Log::error('【淘宝IP库】解析异常'.$ip.PHP_EOL.var_export($request, true));
Log::error('【淘宝IP库】解析异常'.$ip);
}
return false;
@@ -136,10 +135,10 @@ class IP
return false;
}
// 依据 http://lbsyun.baidu.com/index.php?title=webapi/ip-api 开发
$request = (new Client(['timeout' => 15]))->get('https://api.map.baidu.com/location/ip?ak='.env('BAIDU_APP_AK').'&'.$ip.'&coor=bd09ll');
$message = json_decode($request->getBody(), true);
$response = Http::timeout(15)->get('https://api.map.baidu.com/location/ip?ak='.env('BAIDU_APP_AK').'&'.$ip.'&coor=bd09ll');
if ($request->getStatusCode() === 200) {
if ($response->ok()) {
$message = $response->json();
if ($message['status'] === 0) {
return [
'country' => $message['content']['address_detail']['country'],
@@ -150,7 +149,7 @@ class IP
Log::error('【百度IP库】返回错误信息'.$ip.PHP_EOL.var_export($message['message'], true));
} else {
Log::error('【百度IP库】解析异常'.$ip.PHP_EOL.var_export($request, true));
Log::error('【百度IP库】解析异常'.$ip);
}
return false;

View File

@@ -2,7 +2,7 @@
namespace App\Components;
use GuzzleHttp\Client;
use Http;
use Log;
use LSS\XML2Array;
@@ -28,24 +28,24 @@ class Namesilo
$content = '请求操作:['.$operation.'] --- 请求数据:['.http_build_query($query).']';
$request = (new Client(['timeout' => 15]))->get(self::$host.$operation.'?'.http_build_query($query));
$result = XML2Array::createArray(json_decode($request->getBody(), true));
if ($request->getStatusCode() !== 200) {
Log::error('请求失败:'.var_export($request, true));
$response = Http::timeout(15)->get(self::$host.$operation.'?'.http_build_query($query));
if ($response->failed()) {
Log::error('[Namesilo]请求失败:'.var_export($response, true));
Helpers::addNotificationLog('[Namesilo API] - ['.$operation.']', $content, 1, sysConfig('webmaster_email'),
0, var_export($request, true));
0, var_export($response, true));
return false;
}
$result = XML2Array::createArray($response->json());
// 出错
if (empty($result['namesilo']) || $result['namesilo']['reply']['code'] != 300 || $result['namesilo']['reply']['detail'] !== 'success') {
Helpers::addNotificationLog('[Namesilo API] - ['.$operation.']', $content, 1, sysConfig('webmaster_email'),
0, $result['namesilo']['reply']['detail']);
if (empty($result['namesilo']) || $result['namesilo']['reply']['code'] !== 300 || $result['namesilo']['reply']['detail'] !== 'success') {
Helpers::addNotificationLog('[Namesilo API] - ['.$operation.']', $content, 1,
sysConfig('webmaster_email'), 0, $result['namesilo']['reply']['detail']);
} else {
Helpers::addNotificationLog('[Namesilo API] - ['.$operation.']', $content, 1, sysConfig('webmaster_email'),
1, $result['namesilo']['reply']['detail']);
Helpers::addNotificationLog('[Namesilo API] - ['.$operation.']', $content, 1,
sysConfig('webmaster_email'), 1, $result['namesilo']['reply']['detail']);
}
return $result['namesilo']['reply'];

View File

@@ -2,7 +2,7 @@
namespace App\Components;
use GuzzleHttp\Client;
use Http;
use Log;
class NetworkDetection
@@ -21,37 +21,37 @@ class NetworkDetection
$url = 'https://api.50network.com/china-firewall/check/ip/'.($type ? 'icmp/' : ($port ? 'tcp_port/' : 'tcp_ack/')).$ip.($port ? '/'.$port : '');
$checkName = $type ? 'ICMP' : 'TCP';
$request = (new Client(['timeout' => 15]))->get($url);
$result = json_decode($request->getBody(), true);
$response = Http::timeout(15)->get($url);
if ($request->getStatusCode() === 200) {
if (!$result) {
if ($response->ok()) {
$message = $response->json();
if (!$message) {
Log::warning("".$checkName."阻断检测】检测".$ip."时,接口返回异常访问链接:".$url);
return false;
}
if (!$result['success']) {
if ($result['error'] === "execute timeout (3s)") {
if (!$message['success']) {
if ($message['error'] === "execute timeout (3s)") {
sleep(10);
return self::networkCheck($ip, $type, $port);
}
Log::warning("".$checkName."阻断检测】检测".$ip.$port."时,返回".var_export($result, true));
Log::warning("".$checkName."阻断检测】检测".$ip.$port."时,返回".var_export($message, true));
return false;
}
if ($result['firewall-enable'] && $result['firewall-disable']) {
if ($message['firewall-enable'] && $message['firewall-disable']) {
return "通讯正常"; // 正常
}
if ($result['firewall-enable'] && !$result['firewall-disable']) {
if ($message['firewall-enable'] && !$message['firewall-disable']) {
return "海外阻断"; // 国外访问异常
}
if (!$result['firewall-enable'] && $result['firewall-disable']) {
if (!$message['firewall-enable'] && $message['firewall-disable']) {
return "国内阻断"; // 被墙
}
@@ -71,11 +71,11 @@ class NetworkDetection
public static function ping(string $ip)
{
$url = 'https://api.oioweb.cn/api/hostping.php?host='.$ip; // https://api.iiwl.cc/api/ping.php?host=
$request = (new Client(['timeout' => 15]))->get($url);
$message = json_decode($request->getBody(), true);
$response = Http::timeout(15)->get($url);
// 发送成功
if ($request->getStatusCode() === 200) {
if ($response->ok()) {
$message = $response->json();
if ($message && $message['code']) {
return $message['data'];
}

View File

@@ -3,7 +3,7 @@
namespace App\Components;
use GuzzleHttp\Client;
use Http;
use Log;
class PushNotification
@@ -31,10 +31,11 @@ class PushNotification
private static function ServerChan(string $title, string $content)
{
// TODO一天仅可发送不超过500条
$request = (new Client(['timeout' => 15]))->get('https://sc.ftqq.com/'.sysConfig('server_chan_key').'.send?text='.$title.'&desp='.urlencode($content));
$message = json_decode($request->getBody(), true);
$response = Http::timeout(15)->get('https://sc.ftqq.com/'.sysConfig('server_chan_key').'.send?text='.$title.'&desp='.urlencode($content));
// 发送成功
if ($request->getStatusCode() === 200) {
if ($response->ok()) {
$message = $response->json();
if (!$message['errno']) {
Helpers::addNotificationLog($title, $content, 2);
@@ -46,7 +47,7 @@ class PushNotification
return false;
}
// 发送错误
Log::error('ServerChan消息推送异常'.var_export($request, true));
Log::error('ServerChan消息推送异常'.var_export($response, true));
return false;
}
@@ -61,10 +62,10 @@ class PushNotification
*/
private static function Bark(string $title, string $content)
{
$request = (new Client(['timeout' => 15]))->get('https://api.day.app/'.sysConfig('bark_key').'/'.$title.'/'.$content);
$message = json_decode($request->getBody(), true);
$response = Http::timeout(15)->get('https://api.day.app/'.sysConfig('bark_key').'/'.$title.'/'.$content);
if ($request->getStatusCode() === 200) {
if ($response->ok()) {
$message = $response->json();
// 发送成功
if ($message['code'] === 200) {
Helpers::addNotificationLog($title, $content, 3);
@@ -77,7 +78,7 @@ class PushNotification
return false;
}
// 发送错误
Log::error('Bark消息推送异常'.var_export($request, true));
Log::error('Bark消息推送异常'.var_export($response, true));
return false;
}

View File

@@ -2,7 +2,7 @@
namespace App\Components;
use GuzzleHttp\Client;
use Http;
class QQInfo
{
@@ -10,11 +10,11 @@ class QQInfo
{
//向接口发起请求获取json数据
$url = 'https://r.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?get_nick=1&uins='.$qq;
$request = (new Client(['timeout' => 15]))->get($url);
$message = mb_convert_encoding($request->getBody(), "UTF-8", "GBK");
$response = Http::timeout(15)->retry(2)->get($url);
$message = mb_convert_encoding($response->body(), "UTF-8", "GBK");
// 接口是否异常
if ($request->getStatusCode() === 200 && str_contains($message, $qq)) {
if ($response->ok() && str_contains($message, $qq)) {
//对获取的json数据进行截取并解析成数组
$message = json_decode(substr($message, 17, -1), true);
@@ -27,12 +27,12 @@ class QQInfo
public static function getName2(string $qq): string
{
//向接口发起请求获取json数据
$url = 'https://api.toubiec.cn/qq?qq='.$qq.'&size=100';
$request = (new Client(['timeout' => 15]))->get($url);
$message = json_decode($request->getBody(), true);
$url = 'https://api.qqder.com/qqxt/api.php?qq='.$qq;
$response = Http::timeout(15)->get($url);
$message = $response->json();
// 接口是否异常
if ($message && $message['code'] == 200 && $request->getStatusCode() === 200) {
if ($message && $message['code'] === 1 && $response->ok()) {
return $message['name'];
}
@@ -43,11 +43,11 @@ class QQInfo
{
//向接口发起请求获取json数据
$url = 'https://api.unipay.qq.com/v1/r/1450000186/wechat_query?cmd=1&pf=mds_storeopen_qb-__mds_qqclub_tab_-html5&pfkey=pfkey&from_h5=1&from_https=1&openid=openid&openkey=openkey&session_id=hy_gameid&session_type=st_dummy&qq_appid=&offerId=1450000186&sandbox=&provide_uin='.$qq;
$request = (new Client(['timeout' => 15]))->get($url);
$message = json_decode($request->getBody(), true);
$response = Http::timeout(15)->get($url);
$message = $response->json();
// 接口是否异常
if ($message && $message['ret'] == 0 && $request->getStatusCode() === 200) {
if ($message && $message['ret'] === 0 && $response->ok()) {
return urldecode($message['nick']);
}

View File

@@ -6,7 +6,7 @@ use App\Http\Controllers\Controller;
use App\Models\Marketing;
use DB;
use Exception;
use GuzzleHttp\Client;
use Http;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Log;
@@ -67,19 +67,17 @@ class MarketingController extends Controller
try {
DB::beginTransaction();
$response = (new Client())->get('https://pushbear.ftqq.com/sub', [
'query' => [
'sendkey' => sysConfig('push_bear_send_key'),
'text' => $title,
'desp' => $content,
],
$response = Http::timeout(15)->get('https://pushbear.ftqq.com/sub', [
'sendkey' => sysConfig('push_bear_send_key'),
'text' => $title,
'desp' => $content,
]);
$result = json_decode($response->getBody(), true);
if ($result->code) { // 失败
$this->addMarketing(2, $title, $content, -1, $result->message);
$message = $response->json();
if (!$message || !$message['code'] === 0 || $response->failed()) { // 失败
$this->addMarketing(2, $title, $content, -1, $message['message']);
throw new RuntimeException($result->message);
throw new RuntimeException($message['message']);
}
$this->addMarketing(2, $title, $content, 1);

View File

@@ -4,7 +4,7 @@ namespace App\Http\Controllers\Gateway;
use App\Models\Payment;
use Auth;
use GuzzleHttp\Client;
use Http;
use Illuminate\Http\JsonResponse;
use Log;
use Response;
@@ -53,25 +53,23 @@ class BitpayX extends AbstractPayment
private function sendRequest($data, $type = 'createOrder')
{
$client = new Client([
'base_uri' => 'https://api.mugglepay.com/v1/',
'timeout' => 15,
'headers' => [
$client = Http::baseUrl('https://api.mugglepay.com/v1/')
->timeout(15)
->withHeaders([
'token' => sysConfig('bitpay_secret'),
'content-type' => 'application/json',
],
]);
]);
if ($type === 'query') {
$request = $client->get('orders/merchant_order_id/status?id='.$data['merchant_order_id']);
$response = $client->get('orders/merchant_order_id/status?id='.$data['merchant_order_id']);
} else {// Create Order
$request = $client->post('orders', ['body' => json_encode($data)]);
$response = $client->post('orders', ['body' => json_encode($data)]);
}
if ($request->getStatusCode() !== 200) {
Log::error('BitPayX请求支付错误'.var_export($request, true));
if ($response->failed()) {
Log::error('BitPayX请求支付错误'.var_export($response, true));
}
return json_decode($request->getBody(), true);
return $response->json();
}
//Todo: Postman虚拟测试通过需要真实数据参考验证

View File

@@ -4,7 +4,7 @@ namespace App\Http\Controllers\Gateway;
use App\Models\Payment;
use Auth;
use GuzzleHttp\Client;
use Http;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Response;
@@ -63,15 +63,15 @@ class EPay extends AbstractPayment
public function queryInfo(): JsonResponse
{
$request = (new Client())->get(sysConfig('epay_url').'api.php', [
'query' => [
'act' => 'query',
'pid' => sysConfig('epay_mch_id'),
'key' => sysConfig('epay_key'),
],
$response = Http::get(sysConfig('epay_url').'api.php', [
'act' => 'query',
'pid' => sysConfig('epay_mch_id'),
'key' => sysConfig('epay_key'),
]);
if ($request->getStatusCode() === 200) {
return Response::json(['status' => 'success', 'data' => json_decode($request->getBody(), true)]);
if ($response->ok()) {
return Response::json(['status' => 'success', 'data' => $response->json()]);
}
return Response::json(['status' => 'fail', 'message' => '获取失败!请检查配置信息']);

View File

@@ -6,7 +6,7 @@ namespace App\Http\Controllers\Gateway;
use App\Models\Payment;
use Auth;
use Exception;
use GuzzleHttp\Client;
use Http;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Log;
@@ -39,14 +39,8 @@ class PayPal extends AbstractPayment
'validate_ssl' => true,
];
$this->provider->setApiCredentials($config);
$this->exChange = 7;
$client = new Client(['timeout' => 15]);
$exChangeRate = json_decode($client->get('http://api.k780.com/?app=finance.rate&scur=USD&tcur=CNY&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4')
->getBody(), true);
if ($exChangeRate && $exChangeRate['success']) {
$this->exChange = $exChangeRate['result']['rate'];
}
$response = Http::timeout(15)->get('http://api.k780.com/?app=finance.rate&scur=USD&tcur=CNY&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4');
$this->exChange = $response->json()['result']['rate'] ?? 7;
}
public function purchase($request): JsonResponse
@@ -122,7 +116,7 @@ class PayPal extends AbstractPayment
{
$request->merge(['cmd' => '_notify-validate']);
foreach ($request->input() as $key => $value) {
if ($value == null) {
if ($value === null) {
$request->request->set($key, '');
}
}

View File

@@ -3,7 +3,7 @@
namespace App\Jobs\VNet;
use App\Models\User;
use GuzzleHttp\Client;
use Http;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
@@ -46,12 +46,8 @@ class addUser implements ShouldQueue
private function send($host, $secret): void
{
$client = new Client([
'base_uri' => $host,
'timeout' => 15,
'headers' => ['secret' => $secret],
]);
$client = Http::baseUrl($host)->timeout(15)->withHeaders(['secret' => $secret]);
$client->post('api/v2/user/add/list', ['json' => $this->data]);
$client->post('api/v2/user/add/list', $this->data);
}
}

View File

@@ -2,7 +2,7 @@
namespace App\Jobs\VNet;
use GuzzleHttp\Client;
use Http;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
@@ -34,14 +34,10 @@ class delUser implements ShouldQueue
private function send($host, $secret): void
{
$client = new Client([
'base_uri' => $host,
'timeout' => 15,
'headers' => ['secret' => $secret],
]);
$client = Http::baseUrl($host)->timeout(15)->withHeaders(['secret' => $secret]);
if (is_array($this->userIds)) {
$client->post('api/v2/user/del/list', ['json' => $this->userIds]);
$client->post('api/v2/user/del/list', $this->userIds);
} else {
$client->post('api/user/del/'.$this->userIds);
}

View File

@@ -3,7 +3,7 @@
namespace App\Jobs\VNet;
use App\Models\User;
use GuzzleHttp\Client;
use Http;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
@@ -41,12 +41,8 @@ class editUser implements ShouldQueue
private function send($host, $secret): void
{
$client = new Client([
'base_uri' => $host,
'timeout' => 15,
'headers' => ['secret' => $secret],
]);
$client = Http::baseUrl($host)->timeout(15)->withHeaders(['secret' => $secret]);
$client->post('api/user/edit', ['json' => $this->data]);
$client->post('api/user/edit', $this->data);
}
}

View File

@@ -2,7 +2,8 @@
namespace App\Jobs\VNet;
use GuzzleHttp\Client;
use Arr;
use Http;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
@@ -56,16 +57,12 @@ class reloadNode implements ShouldQueue
public function send($host, $secret, $data): bool
{
$client = new Client([
'base_uri' => $host,
'timeout' => 15,
'headers' => ['secret' => $secret],
]);
$client = Http::baseUrl($host)->timeout(15)->withHeaders(['secret' => $secret]);
$ret = $client->post('api/v2/node/reload', ['json' => $data]);
if ($ret->getStatusCode() == 200) {
$message = json_decode($ret->getBody(), true);
if (array_key_exists('success', $message) && array_key_exists('content', $message)) {
$response = $client->post('api/v2/node/reload', $data);
if ($response->ok()) {
$message = $response->json();
if (Arr::has($message, ['success', 'content'])) {
if ($message['success']) {
return true;
}