Files
oil/server-tp6/app/common/service/IdingjuOil.php
T
vipnub fafd3e2c16 1、合作商余额查询
2、分油账户司机可用额度
2026-10-20 23:21:10 +08:00

248 lines
7.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
// +----------------------------------------------------------------------
// | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2023 https://www.yiovo.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
// +----------------------------------------------------------------------
// | Author: 萤火科技 <admin@yiovo.com>
// +----------------------------------------------------------------------
declare (strict_types=1);
namespace app\common\service;
use app\common\library\helper;
use app\common\crypto\Idingju;
/**
* 随机数据类
* Class SybOil
* @package app\store\service
*/
class IdingjuOil extends BaseService
{
public function mk_dir_store($dir, $mode = 0777)
{
if (is_dir($dir) || @mkdir($dir,$mode)) return true;
if (!$this->mk_dir_store(dirname($dir),$mode)) return false;
return @mkdir($dir,$mode);
}
/** 记录日志
* @param $data
*/
public function saveLogStore($data){
$years = date('Ym');
$day = date('Ymd');
//设置路径目录信息(store_log_path 保证 CLI / api / store 各进程写同一处,见 app/common.php)
$dir = store_log_path().$years.'/'.$day;
//目录不存在就创建
$this->mk_dir_store($dir);
$url = $dir.'/'.date('YmdH').'.txt';
$fp = @fopen($url,"a");//打开文件资源通道 不存在则自动创建
@fwrite($fp,date("Y-m-d H:i:s ").var_export($data,true)."\r\n");//写入文件
@fclose($fp);//关闭资源通道
}
/** 油站查询
* @param $data
* @param $company
* @return array|mixed|string[]
*/
public function baseGasStationList($data, $company)
{
$tool = new Idingju($company);
// 1,获取Token
$accessToken = $tool->getToken($company['orgNo']);
$url = '/api/cnpcbp/stations';
$api = $tool->prefixUrl.$url;
// 2,组装参数
$params = [
'lng' => $data['longitude']??'',
'lat' => $data['latitude']??'',
'page' => $data['pageNum']??'1',
];
// 3,获取签名
$timestamp = time();
$get = [
'access_token' => $accessToken,
'timestamp' => $timestamp,
'signature' => $tool->signature($params,$accessToken,$timestamp,$url), // 获取签名
];
$httpUrl = $api.'?'.http_build_query($get); // 拼接url
$header = [
'Content-Type: application/json',
];
// 4,调用业务接口
$json = json_encode($params);
$ret = $tool->request($httpUrl,$json,'post',$header);
$this->saveLogStore("油站查询".$ret);
return json_decode($ret, true);
}
/** 油券库存
* @param $data
* @param $company
* @return array|mixed|string[]
*/
public function stockList($data, $company)
{
$tool = new Idingju($company);
// 1,获取Token
$accessToken = $tool->getToken($company['orgNo']);
$url = '/api/cnpcbp/queryStock';
$api = $tool->prefixUrl.$url;
// 2,组装参数
$params = [
'shortname' => $data['goodsNo'] ?? '',
];
// 3,获取签名
$timestamp = time();
$get = [
'access_token' => $accessToken,
'timestamp' => $timestamp,
'signature' => $tool->signature($params,$accessToken,$timestamp,$url), // 获取签名
];
$httpUrl = $api.'?'.http_build_query($get); // 拼接url
$header = [
'Content-Type: application/json',
];
// 4,调用业务接口
$json = json_encode($params);
$ret = $tool->request($httpUrl,$json,'post',$header);
$this->saveLogStore("库存查询【".$data['goodsNo']."】".json_encode(json_decode($ret, true),320));
return json_decode($ret, true);
}
/** 油卡查询
* @param $data
* @param $company
* @return array|mixed|string[]
*/
public function oilOilCardSelect($data, $company)
{
$tool = new Idingju($company);
// 1,获取Token
$accessToken = $tool->getToken($company['orgNo']);
$url = '/api/cnpcbp/detail';
$api = $tool->prefixUrl.$url;
// 2,组装参数
$params = [
'out_order_id' => '',
];
// 3,获取签名
$timestamp = time();
$get = [
'access_token' => $accessToken,
'timestamp' => $timestamp,
'signature' => $tool->signature($params,$accessToken,$timestamp,$url), // 获取签名
];
$httpUrl = $api.'?'.http_build_query($get); // 拼接url
$header = [
'Content-Type: application/json',
];
// 4,调用业务接口
$json = json_encode($params);
$ret = $tool->request($httpUrl,$json,'post',$header);
$this->saveLogStore("订单查询".$ret);
return json_decode($ret, true);
}
/** 用户分油
* @param $data
* @param $company
* @return array|mixed|string[]
*/
public function oilOilCardShare($data, $company)
{
$tool = new Idingju($company);
// 1,获取Token
$accessToken = $tool->getToken($company['orgNo']);
$url = '/api/cnpcbp/order';
$api = $tool->prefixUrl.$url;
// 2,组装参数
$params = [
'mobile' => $data['mobile']??'',
'out_order_id' => $data['saleOrderNo'],
'shortname' => $data['goodsNo']??'',
'notify_url' => $data['notify_url']??(base_url() . 'oil.php'),
'use_notify_url' => $data['use_notify_url']??(base_url() . 'oiluse.php'),
];
// 3,获取签名
$timestamp = time();
$get = [
'access_token' => $accessToken,
'timestamp' => $timestamp,
'signature' => $tool->signature($params,$accessToken,$timestamp,$url), // 获取签名
];
$httpUrl = $api.'?'.http_build_query($get); // 拼接url
$header = [
'Content-Type: application/json',
];
// 4,调用业务接口
$json = json_encode($params);
$ret = $tool->request($httpUrl,$json,'post',$header);
$this->saveLogStore("分油下单".$ret);
return json_decode($ret, true);
}
/** 动态核销URL
* @param $data
* @param $company
* @return array|mixed|string[]
*/
public function payQrCodeRequest($data, $company)
{
$tool = new Idingju($company);
// 1,获取Token
$accessToken = $tool->getToken($company['orgNo']);
$url = '/api/cnpcbp/getUseCode';
$api = $tool->prefixUrl.$url;
// 2,组装参数
$params = [
'out_order_id' => $data['order_no'],
];
// 3,获取签名
$timestamp = time();
$get = [
'access_token' => $accessToken,
'timestamp' => $timestamp,
'signature' => $tool->signature($params,$accessToken,$timestamp,$url), // 获取签名
];
$httpUrl = $api.'?'.http_build_query($get); // 拼接url
$header = [
'Content-Type: application/json',
];
// 4,调用业务接口
$json = json_encode($params);
$ret = $tool->request($httpUrl,$json,'post',$header);
$this->saveLogStore("动态核销URL".$ret);
return json_decode($ret, true);
}
}