Commit c4754a7a by lizhilin

接入汇付

parent 7e1daeaf
......@@ -64,6 +64,9 @@ protected function grid()
$grid->column('is_hot', '是否推荐')->display(function ($val) {
return ($val == 1) ? '是' : '否';
});
$grid->column('goods_type', '是否代购')->display(function ($val) {
return ($val == 1) ? '是' : '否';
});
$grid->column('is_show', '状态')->switch('', true);
//$grid->column('updated_at')->sortable();
......@@ -171,6 +174,7 @@ protected function form()
->limit(9)
->autoUpload()->saveAsJson();
$form->switch('is_show', '上架状态')->default(1);
$form->switch('goods_type', '是否代购产品')->default(0);
$form->switch('is_hot', '是否推荐')->default(0);
$form->text('sort', '排序')->default(0)->help('越大越靠前');
$form->disableCreatingCheck();
......
<?php
namespace App\Admin\Controllers;
use App\Command\Log;
use App\Models\HfCompanyMember;
use App\Models\Adapay;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
use Dcat\Admin\Widgets\Card;
use App\Models\Merchant;
use Illuminate\Support\Facades\DB;
class HfCompanyMemberController extends AdminController
{
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
return Grid::make(new HfCompanyMember(), function (Grid $grid) {
$grid->column('id')->sortable();
$grid->model()->orderBy('created_at', 'DESC');
//$grid->column('order_no');
$grid->column('cont_name', '联系人姓名');
$grid->column('cont_phone', '手机号');
//$grid->column('email');
$grid->column('entry_mer_type')->display(function ($val) {
return $val == 1 ? '企业' : '个体工商户';
});
$grid->column('social_credit_code');
$grid->column('name');
$grid->column('social_credit_code_begin');
$grid->column('social_credit_code_expires');
$grid->column('address');
$grid->column('business_scope')->display('点击查看')->modal(function ($modal) {
//设置弹窗标题
$modal->title('经营范围');
$content = $this->business_scope . "<br/>";
$card = new Card(null, $content);
return "<div style='padding:10px 10px 0;width:100%;'>$card</div>";
});
$grid->column('legal_person', '法人信息')->display('点击查看')->modal(function ($modal) {
//设置弹窗标题
$modal->title('法人信息');
$content = '法人姓名:' . $this->legal_person . "<br/>";
$content .= '法人身份证号:' . $this->legal_cert_id . "<br/>";
$content .= '法人证件有效期起始日期:' . $this->legal_cert_id_begin . "<br/>";
$content .= '法人证件有效期截止日期:' . $this->legal_cert_id_expires . "<br/>";
$content .= '法人手机号:' . $this->legal_mp . "<br/>";
$card = new Card(null, $content);
return "<div style='padding:10px 10px 0;width:100%;'>$card</div>";
});
$grid->column('status', '审核状态')->display(function ($val) {
$str = '等待审核';
if ($val == 'failed') {
$str = '拒绝';
} elseif ($val == 'succeeded') {
$str = '通过';
}
return $str;
});
// $grid->column('legal_cert_type');
// $grid->column('legal_cert_id');
// $grid->column('legal_person');
// $grid->column('legal_cert_id_begin');
// $grid->column('legal_cert_id_expires');
// $grid->column('legal_mp');
//$grid->column('attach_file');
// $grid->column('created_at');
// $grid->column('updated_at')->sortable();
$grid->disableViewButton();
$grid->filter(function (Grid\Filter $filter) {
// 更改为 panel 布局
$filter->panel();
$filter->like('cont_name', '联系人姓名')->width(3);
$filter->like('cont_phone')->width(3);
});
});
}
/**
* Make a show builder.
*
* @param mixed $id
*
* @return Show
*/
protected function detail($id)
{
return Show::make($id, new HfCompanyMember(), function (Show $show) {
$show->field('id');
$show->field('order_no');
$show->field('cont_name');
$show->field('cont_phone');
$show->field('email');
$show->field('entry_mer_type');
$show->field('social_credit_code');
$show->field('name');
$show->field('social_credit_code_begin');
$show->field('social_credit_code_expires');
$show->field('address');
$show->field('business_scope');
$show->field('legal_cert_type');
$show->field('legal_cert_id');
$show->field('legal_person');
$show->field('legal_cert_id_begin');
$show->field('legal_cert_id_expires');
$show->field('legal_mp');
$show->field('attach_file');
$show->field('created_at');
$show->field('updated_at');
});
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$form = Form::make(new HfCompanyMember(), function (Form $form) {
$form->display('id');
//$form->text('order_no');
$form->select('merchant_id', '商家名称')
->options(Merchant::whereNull('deleted_at')->get()->pluck('name', 'id'))->required();
$order_no = 'cm' . date("YmdHis") . mt_rand(10000, 99999);
$form->text('order_no')->default($order_no); //请求订单号
$form->text('cont_name')->required();
$form->text('cont_phone')->required();
$form->text('email')->required();
$form->radio('entry_mer_type')->options(['0' => '个体工商户', '1' => '企业'])->default(1);
$form->text('social_credit_code')->required()->help('示例值:91310104660736427E');
$form->text('name')->required()->help('示例值:上海汇付支付有限公司');
$form->text('social_credit_code_begin')->required()->help('示例值:20220427');
$form->text('social_credit_code_expires')->required()->help('示例值:20270427');
$form->text('address')->required();
$form->text('business_scope')->required();
$form->hidden('legal_cert_type')->default('00');
$form->text('legal_cert_id', '法人身份证号码')->required();
$form->text('legal_person')->required();
$form->text('legal_cert_id_begin')->required()->help('示例值:20170428');
$form->text('legal_cert_id_expires')->required()->help('示例值:20370428');
$form->text('legal_mp')->required();
$form->file('attach_file', '附件')
->url('upload/huifu')
->deleteUrl('upload/delete-public-oss-file')
->autoUpload()
->required()
->help('内容须包含三证合一证件照、法人身份证正面照、法人身份证反面照、开户银行许可证照。 压缩 zip包后上传,最大限制为 9 M'); //hf
$form->disableCreatingCheck();
$form->disableEditingCheck();
$form->disableViewCheck();
$form->disableDeleteButton();
$form->disableViewButton();
// $form->display('created_at');
// $form->display('updated_at');
});
//汇付注册企业用户
$form->saved(
function (Form $form, $result) {
$hf_id = $form->getKey();
$params = $_POST ?? [];
$member_params = array(
# app_id
"app_id" => env('HUIFU_APPID'),
# 商户用户id
"member_id" => "cm_id" . $params['merchant_id'],
# 订单号
"order_no" => $params['order_no'],
# 企业名称
"name" => $params['name'],
# 省份
"prov_code" => "0031",
# 地区
"area_code" => "3100",
# 统一社会信用码
"social_credit_code" => $params['social_credit_code'],
"social_credit_code_expires" => $params['social_credit_code_expires'],
# 经营范围
"business_scope" => $params['business_scope'],
# 证件类型
"legal_cert_type" => '00',
# 法人姓名
"legal_person" => $params['legal_person'],
# 法人身份证号码
"legal_cert_id" => $params['legal_cert_id'],
# 法人身份证有效期
"legal_cert_id_expires" => $params['legal_cert_id_expires'],
# 法人手机号
"legal_mp" => $params['legal_mp'],
# 企业地址
"address" => $params['address'],
# 邮编
"zip_code" => "",
# 异步通知
"notify_url" => env('API_URL') . '/hf-company-member-notify',
# 企业邮箱
"email" => $params['email'],
# 上传附件
"attach_file" => new \CURLFile($params['attach_file']),
);
$result = (new Adapay())->createCompany($member_params);
Log::add('创建企业用户响应结果', $result);
if ($result['status'] == 'failed') {
return $form->response()->error($result['error_msg']);
} else {
DB::table('hf_company_member')->where('id', $hf_id)->update(['member_id' => $result['member_id'], 'status' => $result['status']]);
}
}
);
return $form;
}
}
......@@ -87,8 +87,8 @@ protected function form()
$form = Form::make(Merchant::with(['store_desc']), function (Form $form) {
$form->display('id');
$form->text('name')->required();
$form->text('contacts', '联系人');
$form->text('phone');
$form->text('contacts', '联系人')->required();
$form->text('phone')->required();
$form->text('account')->required();
$form->text('pwd')->help('字母数字组合,长度大于5个字符');
$form->select('province_id', '省份')->options(City::where('parent_id', 0)->get()->pluck('name', 'city_id'))->rules('required')->load('city_id', '/city');
......
......@@ -15,6 +15,7 @@
use Dcat\Admin\Widgets\Card;
use Dcat\Admin\Http\Controllers\AdminController;
use App\Admin\Forms\VerifierCodeForm;
use App\Admin\Forms\ShippingForm;
use Dcat\Admin\Admin;
......@@ -115,6 +116,15 @@ protected function grid()
$modal->icon('feather icon-edit');
// 传递当前行字段值
return VerifierCodeForm::make()->payload(['id' => $this->id]);
})->if(function ($column) {
return ($column->getValue() == 3 && $this->shipping_type == 0);
})->display('点击发货')->modal(function (Grid\Displayers\Modal $modal) {
// 标题
$modal->title('发货');
// 自定义图标
$modal->icon('feather icon-edit');
// 传递当前行字段值
return ShippingForm::make()->payload(['id' => $this->id]);
});
$grid->column('verification_code', '核销码')->limit(10);
$grid->column('verifier', '核销信息')->if(function ($column) {
......@@ -136,11 +146,13 @@ protected function grid()
})->else(function ($column) {
return '';
});
//$grid->column('updated_at')->sortable();
//$grid->disableActions();
$grid->disableCreateButton();
$grid->disableViewButton();
$grid->filter(function (Grid\Filter $filter) {
// 更改为 panel 布局
$filter->panel();
......
......@@ -2,12 +2,13 @@
namespace App\Admin\Controllers;
use App\Handlers\AilOss;
use App\Handlers\AliOss;
use OSS\Core\OssException;
use Dcat\Admin\Traits\HasUploadedFile;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Intervention\Image\Facades\Image;
use App\Models\Adapay;
class UploadController
{
......@@ -20,7 +21,7 @@ class UploadController
public function deleteOssFile()
{
$ossPath = request()->post('key') ?? '';
$aliOss = new AilOss();
$aliOss = new AliOss();
$res = $aliOss->delete($ossPath);
return $res ? $this->responseDeleted() : $this->responseDeleteFailed('文件删除失败');
}
......@@ -31,7 +32,7 @@ public function deleteOssFile()
public function deletePublicOssFile()
{
$ossPath = request()->post('key') ?? '';
$aliOss = new AilOss();
$aliOss = new AliOss();
if (strstr($ossPath, 'aliyuncs') !== false) {
$res = $aliOss->delete($ossPath); //, 'OSS_BUCKET'
return $res ? $this->responseDeleted() : $this->responseDeleteFailed('文件删除失败');
......@@ -110,7 +111,7 @@ public function userUpload()
*/
public function goodsUpload()
{
$aliOss = new AilOss();
$aliOss = new AliOss();
// 获取上传的文件
$file = $this->file();
......@@ -135,43 +136,10 @@ public function goodsUpload()
}
public function goodsUpload2()
{
$disk = $this->disk();
// 判断是否是删除文件请求
if ($this->isDeleteRequest()) {
// 删除文件并响应
return $this->deleteFileAndResponse();
}
// 获取上传的文件
$file = $this->file();
//获取文件扩展名
$ext = $file->getClientOriginalExtension();
$img = Image::make($file->getRealPath())
->resize(640, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->encode($ext, 90);
$dir = '/goods/' . date("Ymd");
$newName = md5(uniqid()) . '.' . $ext;
$path = "{$dir}/$newName";
$result = $disk->put($path, $img);
return $result
? $this->responseUploaded($path, $disk->url($path))
: $this->responseErrorMessage('文件上传失败');
}
//商品规格图
public function uploadSkuImage(Request $request)
{
$aliOss = new AilOss();
$aliOss = new AliOss();
if ($request->hasFile('file')) {
$file = $request->file('file');
$disk = $this->disk();
......@@ -187,43 +155,14 @@ public function uploadSkuImage(Request $request)
return ['url' => env('OSS_PUBLIC_IMAGE_URL') . $ossFilePath];
}
}
public function uploadSkuImage2(Request $request)
{
if ($request->hasFile('file')) {
$file = $request->file('file');
//$disk = Storage::disk('cosv5');
// $ext = $file->getClientOriginalExtension();
$disk = $this->disk();
// $url = 'sku';
// $res = $disk->put($url, $file);
//获取文件扩展名
$ext = $file->getClientOriginalExtension();
$img = Image::make($file->getRealPath())
->resize(640, null, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})->encode($ext, 90);
$dir = '/goods/' . date("Ymd");
$newName = md5(uniqid()) . '.' . $ext;
$path = "{$dir}/$newName";
$result = $disk->put($path, $img);
$url = $result ? $path : '';
// 返回格式
return ['url' => env('IMAGE_URL') . $url];
}
return [];
}
//轮播图
public function carouselUpload()
{
$aliOss = new AilOss();
$aliOss = new AliOss();
// 获取上传的文件
$file = $this->file();;
$file = $this->file();
Image::make($file->getRealPath())
->resize(640, null, function ($constraint) {
$constraint->aspectRatio();
......@@ -241,6 +180,41 @@ public function carouselUpload()
? $this->responseUploaded(env('OSS_PUBLIC_IMAGE_URL') . $ossFilePath, '')
: $this->responseErrorMessage('文件上传失败');
}
//汇付图片(先调用汇付,再调用alioss)
public function huifuUpload()
{
//汇付类型
// $file_type = [
// 'social_credit_code_id' => '01',
// 'legal_cert_id_front_id' => '02',
// 'legal_cert_id_back_id' => '03',
// ];
// $upload_column = $_POST['upload_column'] ?? '';
$aliOss = new AliOss();
// 获取上传的文件
$file = $this->file();
$ext = $file->getClientOriginalExtension();
// Image::make($file->getRealPath())
// ->resize(640, null, function ($constraint) {
// $constraint->aspectRatio();
// $constraint->upsize();
// })->encode('jpg', 90);
$fileName = uniqid() . '.' . $ext;
$date = date('Ymd');
$ossFilePath = 'huifu/' . $date . '/' . $fileName;
//获取文件的绝对路径
$path = $file->getRealPath();
$res = $aliOss->upload($ossFilePath, $path, 'OSS_PUBLIC_BUCKET');
return $res
? $this->responseUploaded(env('OSS_PUBLIC_IMAGE_URL') . $ossFilePath, '')
: $this->responseErrorMessage('文件上传失败');
}
public function carouselUpload2()
{
$disk = $this->disk();
......
<?php
namespace App\Admin\Forms;
use App\Command\Log;
use App\Models\OrderInfo;
use Dcat\Admin\Widgets\Form;
use Dcat\Admin\Contracts\LazyRenderable;
use Dcat\Admin\Traits\LazyWidget;
use App\Handlers\MpAaccessToken;
use App\Models\PaymentRecord;
use App\Models\User;
use Illuminate\Support\Facades\DB;
use DateTime;
use DateTimeZone;
use Exception;
//发货
class ShippingForm extends Form implements LazyRenderable
{
use LazyWidget;
/**
* Handle the form request.
*
* @param array $input
*
* @return mixed
*/
public function handle(array $input)
{
$mpTokenObj = new MpAaccessToken();
$dateTime = new DateTime();
$dateTime->setTimezone(new DateTimeZone('Asia/Shanghai'));
$upload_time = $dateTime->format('Y-m-d\TH:i:s.vP');
$shipping_type = intval($input['shipping_type']);
$shipping_name = trim($input['shipping_name']);
$shipping_code = trim($input['shipping_code']);
$shipping_goods = trim($input['shipping_goods']);
$order_id = $this->payload['id'];
$order = OrderInfo::find($order_id);
$order->shipping_type = $shipping_type;
$order->shipping_code = $shipping_code;
$order->shipping_name = $shipping_name;
$order->shipping_goods = $shipping_goods;
$order->shipping_at = date("Y-m-d H:i:s");
try {
//接入微信小程序发货管理
if ($order->save()) {
//付款记录
$recordObj = PaymentRecord::where('order_sn', $order->order_sn)->first();
$transaction_id = $recordObj->other_order;
$payerOpenid = User::where('id', $recordObj->uid)->value('openid');
$access_token = $mpTokenObj->getAccessToken();
$url = "https://api.weixin.qq.com/wxa/sec/order/upload_shipping_info?access_token=" . $access_token;
$data = [
"order_key" => [
"order_number_type" => 2,
"transaction_id" => $transaction_id,
],
"logistics_type" => 4,
"delivery_mode" => 1,
"shipping_list" => [
["item_desc" => $order->shipping_goods]
],
"upload_time" => $upload_time,
"payer" => [
"openid" => $payerOpenid,
]
];
$headers = array("Content-type: application/json;charset=UTF-8");
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
// 设置HTTP头部
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data, JSON_UNESCAPED_UNICODE));
$response = curl_exec($curl);
$result = json_decode($response, true);
// 关闭cURL会话
curl_close($curl);
Log::add('发货录入', $result);
if ($result['errcode'] != 0) {
throw new Exception($result['errmsg']);
}
}
DB::commit();
} catch (\Exception $exception) {
DB::rollBack();
return $this->response()->error($exception->getMessage())->refresh();
}
return $this->response()->success('确认成功')->refresh();
}
/**
* Build a form here.
*/
public function form()
{
$this->radio('shipping_type', '发货方式')
->when([1, 2], function (Form $form) {
$form->text('shipping_name', '快递公司');
$form->text('shipping_code', '快递单号');
})
->options([
1 => '物流快递',
2 => '同城配送',
3 => '用户自提',
4 => '虚拟发货',
])
->default(1);
$this->text('shipping_goods', '商品信息')->required();
}
/**
* The data of the form.
*
* @return array
*/
public function default()
{
// 获取外部传递参数
return [];
}
}
......@@ -29,6 +29,8 @@
$router->match(['put', 'post'], 'upload/carousel', 'UploadController@carouselUpload'); //上传轮播图
$router->match(['put', 'post'], 'upload/huifu', 'UploadController@huifuUpload'); //上传汇付平台图片
$router->match(['put', 'post'], 'upload/article', 'UploadController@articleUpload'); //上传文章图
$router->match(['put', 'post'], 'upload/skuImage', 'UploadController@uploadSkuImage'); //上传商品规格图
......@@ -77,4 +79,7 @@
$router->get('city', 'CityController@getList'); //城市选择-联动
$router->get('get-store-list', 'MerchantGoodsStoreController@getList'); //门店选择-联动
$router->resource('hf-company-member', 'HfCompanyMemberController'); //汇付天下-企业用户
});
<?php
namespace App\Handlers;
use Exception;
use OSS\OssClient;
use OSS\Core\OssException;
require_once '../vendor/aliyuncs/oss-sdk-php/autoload.php';
class AliOss
{
public static $oss;
/**
* @throws \OSS\Core\OssException
*/
public function __construct()
{
$accessKeyId = env('OSS_ACCESS_KEY_ID'); //获取阿里云oss的accessKeyId
$accessKeySecret = env('OSS_ACCESS_KEY_SECRET'); //获取阿里云oss的accessKeySecret
$endpoint = env('OSS_ENDPOINT'); //获取阿里云oss的endPoint
self::$oss = new OssClient($accessKeyId, $accessKeySecret, $endpoint); //实例化OssClient对象
}
/**
*
* 使用阿里云oss上传文件
* @param $object 保存到阿里云oss的文件名
* @param $filepath 文件在本地的绝对路径
* @return bool 上传是否成功
* @throws \OSS\Core\OssException
*/
public function upload($object, $filepath, $bucket = 'OSS_BUCKET')
{
$res = false;
$bucket = env($bucket); //获取阿里云oss的bucket
try {
self::$oss->uploadFile($bucket, $object, $filepath);
} catch (OssException $e) {
print_r($e->getMessage());
die;
}
if (self::$oss->uploadFile($bucket, $object, $filepath)) { //调用uploadFile方法把服务器文件上传到阿里云oss
$res = true;
}
return $res;
}
/**
* 删除指定文件
* @param $object string 被删除的文件名
* @return bool 删除是否成功
*/
public function delete(string $object, $bucket = 'OSS_BUCKET')
{
$res = false;
$bucket = env($bucket);
if (self::$oss->deleteObject($bucket, $object)) { //调用deleteObject方法把服务器文件上传到阿里云oss
$res = true;
}
return $res;
}
/**
* 删除指定文件
* @param $object 被删除的文件名
* @return bool 删除是否成功
*/
public function delete_array($objects, $bucket = 'OSS_BUCKET')
{
$res = false;
$bucket = env($bucket);
if (self::$oss->deleteObjects($bucket, $objects)) { //调用deleteObject方法把服务器文件上传到阿里云oss
$res = true;
}
return $res;
}
/*获取文件的临时访问URL*/
public function getUrl($OssFilePath, $time = 1800, $bucket = 'OSS_BUCKET')
{
// 生成一个带签名的URL,有效期是3600秒,可以直接使用浏览器访问。
$timeout = $time;
$bucket = env($bucket);
return self::$oss->signUrl($bucket, $OssFilePath, $timeout, "GET");
}
/**
* 在OSS中创建虚拟“文件夹”。名称不应以“/”结尾,因为该方法无论如何都会用“/”追加名称。
*
* Internal use only.
*
* @param string $dirName 文件夹名称
* @return bool
*/
public function createDir($dirName, $bucket = 'OSS_BUCKET')
{
$res = false;
$bucket = env($bucket);
if (self::$oss->createObjectDir($bucket, $dirName)) {
$res = true;
}
return $res;
}
/*获取指定目录下的目录与文件*/
public function fileList($dir, $maxKey = 1000, $delimiter = '/', $nextMarker = '')
{
$fileList = []; // 获取的文件列表, 数组的一阶表示分页结果
$dirList = []; // 获取的目录列表, 数组的一阶表示分页结果
$storageList = [
'file' => [], // 真正的文件数组
'dir' => [], // 真正的目录数组
];
while (true) {
$options = [
'delimiter' => $delimiter,
'prefix' => $dir,
'max-keys' => $maxKey,
'marker' => $nextMarker,
];
$bucket = env('OSS_BUCKET');
try {
$fileListInfo = self::$oss->listObjects($bucket, $options);
// 得到nextMarker, 从上一次 listObjects 读到的最后一个文件的下一个文件开始继续获取文件列表, 类似分页
} catch (\Exception $e) {
return $e->getMessage(); // 发送错误信息
}
$nextMarker = $fileListInfo->getNextMarker();
$fileItem = $fileListInfo->getObjectList();
$dirItem = $fileListInfo->getPrefixList();
$fileList[] = $fileItem;
$dirList[] = $dirItem;
if ($nextMarker === '') break;
}
foreach ($fileList[0] as $item) {
$storageList['file'][] = $this->objectInfoParse($item);
}
foreach ($dirList[0] as $item) {
$storageList['dir'][] = $this->prefixInfoParse($item);
}
return $storageList; // 发送正确信息
}
/* 解析 prefixInfo 类 */
private function prefixInfoParse($prefixInfo)
{
return [
'dir' => $prefixInfo->getPrefix(),
];
}
/* 解析 objectInfo 类 */
public function objectInfoParse($objectInfo)
{
return [
'name' => $objectInfo->getKey(),
'size' => $objectInfo->getSize(),
'update_at' => $objectInfo->getLastModified(),
];
}
}
<?php
namespace App\Handlers;
use Illuminate\Support\Facades\Cache;
//小程序accesstoken
class MpAaccessToken
{
private $appId;
private $appSecret;
public function __construct()
{
$this->appId = env('WX_XCX_APPID');
$this->appSecret = env('WX_XCX_KEY');
}
public function getAccessToken()
{
// access_token 应该全局存储与更新,以下代码以写入到文件中做示例
//$data = json_decode(file_get_contents("access_token.json"));
$token = Cache::get('access_token_expire_time');
$data = $token ? $token : ['expire_time' => 0];
if ($data['expire_time'] < time()) {
// 如果是企业号用以下URL获取access_token
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";
$res = json_decode($this->httpGet($url));
$access_token = $res->access_token;
if ($access_token) {
$data['expire_time'] = time() + 7000;
$data['access_token'] = $access_token;
Cache::set('access_token_expire_time', $data);
}
} else {
$access_token = $data['access_token'];
}
return $access_token;
}
private function httpGet($url)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);
return $res;
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Command\Log;
use App\Models\Merchant;
use App\Models\User as UserModel;
use App\Models\OrderDivideRecord;
use Illuminate\Http\Request;
use App\Models\Adapay;
use App\Models\HfCompanyMember;
class HfCompanyMemberController extends BaseController
{
//创建企业用户
public function create(Request $request)
{
// $mer_id = $request->user()->merchant_id;
// $merObj = Merchant::where('id', $mer_id)->first();
$member = new \NwVVVS\AdapaySdk\CorpMember();
//$file_real_path = realpath('123.zip');
$url = 'https://amy8888.oss-cn-shanghai.aliyuncs.com/carousel/20241227/612f0eac39fbace6f8333e8e0c212e30.jpg';
$member_params = array(
# app_id
"app_id" => "app_c383f483-3c2a-41b6-8d21-7f597dde4c50",
# 商户用户id
"member_id" => "hf_test_member_id3",
# 订单号
"order_no" => date("YmdHis") . rand(100000, 999999),
# 企业名称
"name" => "测试企业",
# 省份
"prov_code" => "0031",
# 地区
"area_code" => "3100",
# 统一社会信用码
"social_credit_code" => "social_credit_code",
"social_credit_code_expires" => "20301109",
# 经营范围
"business_scope" => "123123",
# 法人姓名
"legal_person" => "frname",
# 法人身份证号码
"legal_cert_id" => "1234567890",
# 法人身份证有效期
"legal_cert_id_expires" => "20301010",
# 法人手机号
"legal_mp" => "13333333333",
# 企业地址
"address" => "1234567890",
# 邮编
"zip_code" => "企业地址测试",
# 企业电话
"telphone" => "1234567890",
# 企业邮箱
"email" => "1234567890@126.com",
# 上传附件
"attach_file" => $url,
# 银行代码
"bank_code" => "1001",
# 银行账户类型
"bank_acct_type" => "1",
);
$res = (new Adapay())->createCompany();
# 创建企业用户
// $member->create($member_params);
// # 对创建企业用户结果进行处理
// if ($member->isError()) {
// //失败处理
// var_dump($member->result);
// } else {
// //成功处理
// var_dump($member->result);
// }
return $this->JsonResponse([]);
}
//异步通知
public function notify()
{
Log::add('--创建企业用户回调结果--', $_POST);
$params = $_POST ?? [];
$adapay_tools = new \NwVVVS\AdapaySdk\AdapayTools();
$post_data = json_decode($params['data'], 1);
$post_data_str = json_encode($post_data, JSON_UNESCAPED_UNICODE);
$post_sign_str = isset($params['sign']) ? $params['sign'] : '';
# 先校验签名和返回的数据的签名的数据是否一致
$sign_flag = $adapay_tools->verifySign($post_data_str, $post_sign_str);
if (!$sign_flag) {
Log::add('创建企业用户回调签名验证失败', []);
return false;
}
$member_id = $post_data['member_id'];
$order_no = $post_data['order_no'];
$hfcObj = HfCompanyMember::where(['member_id' => $member_id, 'order_no' => $order_no])->first();
if ($post_data['audit_state'] != 'B') {
$hfcObj->status = 'succeeded';
} else {
$hfcObj->status = 'failed';
}
$hfcObj->save();
return true;
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Command\Log;
use App\Models\Adapay;
use App\Models\UserAddress;
use App\Models\Store;
use App\Models\Good as GoodModel;
use App\Models\GoodSku;
use App\Models\OrderGoods;
use App\Models\OrderInfo as OrderInfoModel;
use App\Models\MerchantGoodSku;
use Dcat\Admin\Grid\Displayers\Orderable;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use League\CommonMark\Node\Query\OrExpr;
class HfOrderController extends BaseController
{
//退款回调
public function refundNotify()
{
Log::add('--撤销回调结果--', $_POST);
$fields = $_POST ?? [];
$res = (new Adapay())->refundNotify($fields);
return $res;
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Command\Log;
use Illuminate\Http\Request;
use Exception;
use Illuminate\Support\Facades\DB;
class HfProvAreaCodeController extends BaseController
{
public function getList(Request $request)
{
$parent_id = $request->parent_id ?? 0;
$where = [
'parent_id' => $parent_id
];
$data = DB::table('hf_prov_area_code')->select("id", "parent_id", "area_code", "title")
->where($where)
->limit(100)
->get()->toArray();
return $this->JsonResponse($data);
}
}
<?php
namespace App\Http\Controllers\Api;
use App\Command\Log;
use Illuminate\Http\Request;
use App\Models\Adapay;
use App\Models\HfCompanyMember;
use App\Models\HfSettleAccount;
use Exception;
use Illuminate\Support\Facades\DB;
class HfSettleAccountController extends BaseController
{
//创建普通用户结算账户
public function createMemberAccount(Request $request)
{
$card_id = $request->card_id ?? '';
$card_name = $request->card_name ?? '';
$tel_no = $request->tel_no ?? '';
$cert_id = $request->cert_id ?? '';
if (!$card_id || !$card_name || !$tel_no || !$cert_id) {
return $this->JsonResponse('', '必填项不为空', 500);
}
$userObj = $request->user();
$user_id = $userObj->id;
$member_id = $userObj->member_id;
if (!$member_id) {
return $this->JsonResponse('', '账户异常,请联系管理员', 500);
}
$account_params = array(
"app_id" => env('HUIFU_APPID'),
"member_id" => $member_id,
"channel" => "bank_account",
"account_info" => [
"card_id" => $card_id,
"card_name" => $card_name,
"cert_id" => $cert_id,
"cert_type" => "00",
"tel_no" => $tel_no,
// "bank_code" => "03060000",
// "bank_name" => "建",
"bank_acct_type" => "2",
// "prov_code" => "0031",
// "area_code" => "3100",
]
);
$local_params = [
'member_type' => 0,
'mid' => $user_id,
'card_id' => $card_id,
'card_name' => $card_name,
'cert_id' => $cert_id,
'cert_type' => '00',
'tel_no' => $tel_no,
'bank_acct_type' => 2
];
DB::beginTransaction();
try {
# 创建
$result = (new Adapay())->createMemberSettleAccount($account_params);
if (isset($result['status']) && $result['status'] == 'succeeded') {
$local_params['account_id'] = $result['id'];
$local_params['created_at'] = date("Y-m-d H:i:s", $result['create_time']);
DB::table('hf_settle_account')->insert($local_params);
} else {
throw new Exception($result['error_msg']);
}
DB::commit();
return $this->JsonResponse('');
} catch (\Exception $exception) {
Log::add('添加用户结算账户失败', $exception->getMessage());
DB::rollBack();
return $this->JsonResponse('', $exception->getMessage(), 500);
}
}
//创建企业用户结算账户
public function createCompanyAccount(Request $request)
{
$card_id = $request->card_id ?? '';
$card_name = $request->card_name ?? '';
$tel_no = $request->tel_no ?? '';
$bank_code = $request->bank_code ?? '';
$bank_name = $request->bank_name ?? '';
$prov_code = $request->prov_code ?? '';
$area_code = $request->area_code ?? '';
if (!$card_id || !$card_name || !$tel_no || !$bank_code || !$prov_code || !$area_code) {
return $this->JsonResponse('', '必填项不为空', 500);
}
$userObj = $request->user();
$merchant_id = 3; //$userObj->merchant_id;
$exist = HfCompanyMember::where(['merchant_id' => $merchant_id, 'member_id' => 'cm_id' . $merchant_id])->count();
if (!$exist) {
return $this->JsonResponse('', '账户异常,请联系管理员', 500);
}
$member_id = 'cm_id' . $merchant_id;
$account_params = array(
"app_id" => env('HUIFU_APPID'),
"member_id" => $member_id,
"channel" => "bank_account",
"account_info" => [
"card_id" => $card_id,
"card_name" => $card_name,
"tel_no" => $tel_no,
"bank_code" => $bank_code,
"bank_name" => $bank_name,
"bank_acct_type" => "1",
"prov_code" => $prov_code,
"area_code" => $area_code,
]
);
$local_params = [
'member_type' => 1,
'mid' => $merchant_id,
'card_id' => $card_id,
'card_name' => $card_name,
"bank_code" => $bank_code,
"bank_name" => $bank_name,
'tel_no' => $tel_no,
'bank_acct_type' => 1,
"prov_code" => $prov_code,
"area_code" => $area_code,
];
DB::beginTransaction();
try {
# 创建
$result = (new Adapay())->createMemberSettleAccount($account_params);
if (isset($result['status']) && $result['status'] == 'succeeded') {
$local_params['account_id'] = $result['id'];
$local_params['created_at'] = date("Y-m-d H:i:s", $result['create_time']);
DB::table('hf_settle_account')->insert($local_params);
} else {
throw new Exception($result['error_msg']);
}
DB::commit();
return $this->JsonResponse('');
} catch (\Exception $exception) {
Log::add('添加用户结算账户失败' . $member_id, $exception->getMessage());
DB::rollBack();
return $this->JsonResponse('', $exception->getMessage(), 500);
}
}
//查询结算账户
public function queryAccount(Request $request) {}
//银行代码
public function getBankCode()
{
$data = [
['code' => '01020000', 'title' => '工商银行'],
['code' => '01030000', 'title' => '农业银行'],
['code' => '01040000', 'title' => '中国银行'],
['code' => '01050000', 'title' => '建设银行'],
['code' => '03010000', 'title' => '交通银行'],
['code' => '03134402', 'title' => '平安银行'],
['code' => '03020000', 'title' => '中信银行'],
['code' => '03030000', 'title' => '光大银行'],
['code' => '03040000', 'title' => '华夏银行'],
['code' => '03050000', 'title' => '民生银行'],
['code' => '03060000', 'title' => '广发银行'],
['code' => '03080000', 'title' => '招商银行'],
['code' => '03090000', 'title' => '兴业银行'],
['code' => '03100000', 'title' => '浦发银行'],
['code' => '03130011', 'title' => '北京银行'],
['code' => '03130012', 'title' => '天津银行'],
['code' => '03130031', 'title' => '上海银行'],
['code' => '03130032', 'title' => '江苏银行'],
['code' => '03130050', 'title' => '重庆银行'],
['code' => '03132102', 'title' => '大连银行'],
['code' => '03132301', 'title' => '哈尔滨银行'],
['code' => '03133201', 'title' => '南京银行'],
['code' => '03133301', 'title' => '杭州银行'],
['code' => '03133302', 'title' => '宁波银行'],
['code' => '03133308', 'title' => '温州银行'],
['code' => '03150000', 'title' => '恒丰银行'],
['code' => '03160000', 'title' => '浙商银行'],
];
return $this->JsonResponse($data);
}
//删除结算账户
public function deleteAccount(Request $request)
{
$userObj = $request->user();
$member_type = $request->member_type ?? 0;
$role_id = $useObj->role_id ?? '';
if ($role_id == 1) { //商家
$mid = $userObj->merchant_id;
$member_id = HfCompanyMember::where(['merchant_id' => $mid, 'status' => 'succeeded'])->value('member_id');
} else {
$mid = $userObj->id;
$member_id = $userObj->member_id;
}
if (!$member_id) {
return $this->JsonResponse('', '参数错误', 201);
}
$accountObj = HfSettleAccount::where(['member_type' => $member_type, 'mid' => $mid])->first();
$account_params = array(
'app_id' => env('HUIFU_APPID'),
'member_id' => $member_id,
'settle_account_id' => $accountObj->account_id
);
# 删除
$result = (new Adapay())->deleteSettleAccount($account_params);
if (isset($result['status']) && $result['status'] == 'succeeded') {
//删除本地
$accountObj->delete();
return $this->JsonResponse('');
} else {
return $this->JsonResponse('', '删除失败', 201);
}
}
}
......@@ -9,6 +9,7 @@
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use App\Models\Adapay;
class LoginController extends BaseController
{
......@@ -101,10 +102,14 @@ public function login(Request $request)
$user->total_revenue = 0;
$user->save();
}
if ($user->openid != $openId) {
$user->openid = $openId;
$user->save();
//对接汇付-创建个人对象
if (!$user->member_id) {
$result = (new Adapay())->createMember($user->id, $user->phone);
if (isset($result['status']) && $result['status'] == 'succeeded') {
DB::table('user')->where('id', $user->id)->update(['member_id' => $result['member_id']]);
}
}
//生成token
$accessToken = 'Bearer ' . $user->createToken('Access-token')->plainTextToken;
Log::add('用户--' . $user->id . '登录', ['token' => $accessToken]);
......@@ -173,9 +178,14 @@ private function codeToSession($code)
public function testLogin(Request $request)
{
$uid = $request->uid ?? 31;
$uid = $request->uid ?? 7;
$user = User::find($uid);
$accessToken = 'Bearer ' . $user->createToken('Access-token')->plainTextToken;
//对接汇付-创建个人对象
if (!$user->member_id) {
(new Adapay())->createMember($user->id, $user->phone);
}
return $this->JsonResponse(['Authorization' => $accessToken,]);
}
}
......@@ -3,7 +3,7 @@
namespace App\Http\Controllers\Api;
use App\Command\Log;
use App\Models\Pay;
use App\Models\Adapay;
use App\Models\UserAddress;
use App\Models\Store;
use App\Models\Good as GoodModel;
......@@ -41,7 +41,7 @@ public function CheckoutBuyOrder(Request $request)
$arrObj = GoodSku::where('goods_id', $goods_id)->where('attr_sn', $attr_sn)->first();
$attr_val = $arrObj ? $arrObj->attr_val : '';
$attr_id = $arrObj ? $arrObj->id : 0;
$goods_price = ($arrObj && $merchant_id) ? $arrObj->cg_price : $arrObj->market_price;
$goods_price = ($arrObj && $goodsObj->goods_type && $merchant_id) ? $arrObj->cg_price : $arrObj->market_price;
}
$data = [];
......@@ -104,7 +104,7 @@ public function CreateBuyOrder(Request $request)
}
}
$attr_val = $arrObj ? $arrObj->attr_val : '';
$good_price = ($arrObj && $merchant_id) ? $arrObj->cg_price : $arrObj->market_price;
$good_price = ($arrObj && $goodsObj->goods_type && $merchant_id) ? $arrObj->cg_price : $arrObj->market_price;
}
//商品总价
$total_price = ($good_price * $num);
......@@ -207,7 +207,7 @@ public function CreateOrder(Request $request)
return $this->JsonResponse('', '该商品库存不足!', 500);
}
}
$goods_price = $merchant_id ? $skuObj->cg_price : $skuObj->market_price;
$goods_price = ($merchant_id && $goodsObj->goods_type) ? $skuObj->cg_price : $skuObj->market_price;
$goods_img = isset($goodsObj->cover_img) ? $goodsObj->cover_img : '';
$goods_name .= $goodsObj->goods_name . "、";
......@@ -289,15 +289,10 @@ public function pay(Request $request)
try {
$res = '';
$order = OrderInfoModel::find($order_id);
if ($order->pay_cs > 0) {
// $order_record = $order->order_record ?? $order->order_sn;
// $order->order_sn = $this->getOrderSn();
// $order->order_record = $order_record . "|" . $order->order_sn;
// $order->save();
}
$orderGoodsObj = OrderGoods::where("order_id", $order_id)->first();
$order_title = $orderGoodsObj ? $orderGoodsObj->goods_name : '';
$res = Pay::pay($order_title, $order->order_sn, $order->order_amount, $openid);
$res = (new Adapay())->pay($order_title, $order->order_sn, $order->order_amount, $openid);
$order->pay_cs += 1;
$order->save();
......@@ -312,8 +307,10 @@ public function pay(Request $request)
//付款回调
public function payNotify(Request $request)
{
$fields = $request->query->all();
return $this->JsonResponse(Pay::payNotify($fields));
Log::add('--回调结果--', $_POST);
$fields = $_POST ?? [];
//$result = file_get_contents('php://input');
return $this->JsonResponse((new Adapay())->payNotify($fields));
}
......@@ -422,6 +419,12 @@ public function canceOrder(Request $request)
}
}
}
//待发货订单--退款
if ($model->order_status == 1 && $model->order_amount > 0) {
$order_sn = $model->order_sn;
$refund_no = "R" . date("YmdHis") . rand(100000, 999999); //退单号
$result = (new Adapay())->refund($order_sn, $refund_no);
}
$model->order_status = 7;
$model->save();
......
......@@ -50,7 +50,7 @@ public function addShoppingCart(Request $request)
Log::add('添加购物车商品规格', $goodsAttrObj->toArray());
$attr_id = $goodsAttrObj->id;
$attr_txt = $goodsAttrObj->attr_val;
$goods_price = $merchant_id ? $goodsAttrObj->cg_price : $goodsAttrObj->market_price;
$goods_price = ($merchant_id && $goodsObj->goods_type) ? $goodsAttrObj->cg_price : $goodsAttrObj->market_price;
}
$shoppingCart = isset($userObj->shopping_cart) ? json_decode($userObj->shopping_cart, true) : [];
......
<?php
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;
class HfCompanyMember extends Model
{
use HasDateTimeFormatter;
use SoftDeletes;
protected $table = 'hf_company_member';
//添加企业用户
public function addCompanyMember($member_params)
{
$member = new \NwVVVS\AdapaySdk\CorpMember();
# 创建企业用户
$member->create($member_params);
# 对创建企业用户结果进行处理
if ($member->isError()) {
//失败处理
echo "<pre>";
print_r($member->result);
} else {
//成功处理
echo "<pre>";
print_r($member->result);
}
}
}
<?php
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Model;
class HfSettleAccount extends Model
{
use HasDateTimeFormatter;
use SoftDeletes;
protected $table = 'hf_settle_account';
}
<?php
namespace App\Models;
use Dcat\Admin\Traits\HasDateTimeFormatter;
use Illuminate\Database\Eloquent\Model;
class RefundRecord extends Model
{
use HasDateTimeFormatter;
protected $table = 'refund_record';
public function user()
{
return $this->belongsTo(User::class, 'uid');
}
}
......@@ -23,6 +23,7 @@
"league/flysystem": "^3.29",
"lty5240/dcat-easy-sku": "^1.1",
"maatwebsite/excel": "~3.1.0",
"nwvvvs/adapay": "^1.4",
"overtrue/wechat": "~5.0",
"phpoffice/phpspreadsheet": "^1.29",
"predis/predis": "^2.1",
......
......@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "1b40207476190f175adf99e702616055",
"content-hash": "85cce16723f4d5d65761cb74fb48b74e",
"packages": [
{
"name": "abbotton/dcat-sku-plus",
......@@ -4741,6 +4741,58 @@
"time": "2023-02-08T01:06:31+00:00"
},
{
"name": "nwvvvs/adapay",
"version": "1.4.4",
"source": {
"type": "git",
"url": "https://github.com/NmVVVS/adapay.git",
"reference": "e6aee8fb1c2b4efdc2113834d02e740d614eaf12"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/NmVVVS/adapay/zipball/e6aee8fb1c2b4efdc2113834d02e740d614eaf12",
"reference": "e6aee8fb1c2b4efdc2113834d02e740d614eaf12",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"ext-curl": "*",
"ext-mbstring": "*",
"php": ">=8.0.0"
},
"type": "libaray",
"autoload": {
"psr-4": {
"NwVVVS\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "NwVVVS",
"email": "xevckq@proton.me"
}
],
"description": "基于AdaPay官方PHP v1.4.4的composer包",
"keywords": [
"adapay",
"pay"
],
"support": {
"issues": "https://github.com/NmVVVS/adapay/issues",
"source": "https://github.com/NmVVVS/adapay/tree/1.4.4"
},
"time": "2024-06-17T11:26:49+00:00"
},
{
"name": "overtrue/socialite",
"version": "4.11.0",
"source": {
......
{
"*************DO NOT CHANGE CONTENT*************":"",
"api_key_live":"api_live_2d28000f-7207-4e48-a4a7-bb7f3605e6a2",
"api_key_test":"api_test_ecfac4aa-d54c-4551-88fc-8655bbf6cfe2",
"rsa_public_key":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCwN6xgd6Ad8v2hIIsQVnbt8a3JituR8o4Tc3B5WlcFR55bz4OMqrG/356Ur3cPbc2Fe8ArNd/0gZbC9q56Eb16JTkVNA/fye4SXznWxdyBPR7+guuJZHc/VW2fKH2lfZ2P3Tt0QkKZZoawYOGSMdIvO+WqK44updyax0ikK6JlNQIDAQAB",
"*************DO NOT CHANGE CONTENT*************":"",
"rsa_private_key":"MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALESBPCpBbsMAgcLaonh7Tj3br/5MkH7Re7r5CsZueuu4V98NZYY9aBu98kOWNcBbiiVoqb39JPnaKd+WElQNOWSqyN3VqAzOqXSw76kCfDgIGUkBIzmbC6A0v/85qdxXRIThnIc0adCjDxVmp8HNiK3Bwxm1mbES+x93D2b7XkbAgMBAAECgYEApyhHmZk2W7meQGA6lye89kY/OuNY2okHH+F4aGfE6AUTpTxwqd2uI2IecKMmovIquA1qmw0Ayo9ucJAJcExTYcAprcAMMbDTtj/damatyYzxg+Sm2LlJz7h9RLvMk+juhhEeiDXoo/be3mx2i14jW1PCAt61Ylo/40lZwya8jKECQQD0OJbCMtQhDJjdlsW4P4FEVhkh9uHpVgm0Xnw9PktW5Vi+iiYdOIAqsTgS4F+053LcIaN0jwAYzsMG1mL1bP0fAkEAuZxRP3fWekQAZaCGTW0vQxhmO6QMRulieeBTP61Tjn/OHzlmJdQRXP7UFRdmLmmo24UBADbP6+oDkt/d2/sIhQJASStHJ8m4umoexozskgYcwY+WGhHwn0sSv0JrsKGgStmN3BBh2PFbnO7ZoPYuVnHdfMxrP3m0irovvjWvEl7j+wJALomzFWbGsAE82D5XbjJiF0CW4X1QVrdNqaFFPkIHIUOKOun5YqK5d8etBVzIkfqMC/5dMeCMYWpbWwgmaHGYwQJBAJDjug5UxO2mBKZ0++TWYPRY74jnN9sEDeFvS/xgTgvmzWcg1q0huuZq+kbYJaKWUZQEhw+EBnd8PCvzmLdR4pY="
}
\ No newline at end of file
<?php
return [
'labels' => [
'HfCompanyMember' => '企业用户',
'hf-company-member' => '企业用户',
],
'fields' => [
'order_no' => '请求订单号',
'cont_name' => '联系人姓名',
'cont_phone' => '联系人手机号',
'email' => 'Email',
'entry_mer_type' => '商户类型',
'social_credit_code' => '统一社会信用代码',
'name' => '企业名称',
'social_credit_code_begin' => '营业执照有效期起始日期',
'social_credit_code_expires' => '营业执照有效期截止日期',
'address' => '注册地址',
'business_scope' => '经营范围',
'legal_cert_type' => '法人证件类型',
'legal_cert_id' => '法人证件号码',
'legal_person' => '法人姓名',
'legal_cert_id_begin' => '法人证件有效期起始日期',
'legal_cert_id_expires' => '法人证件有效期截止日期',
'legal_mp' => '法人手机号',
'attach_file' => '附件',
],
'options' => [],
];
......@@ -27,6 +27,14 @@
Route::get('test-login', 'LoginController@testLogin'); //测试登录
Route::get('city-code', 'BaseController@addCityCode'); //导入城市编码(汇付)
Route::post('hf-company-member-notify', 'HfCompanyMemberController@notify'); //汇付 创建企业用户异步通知
Route::get('hf-bank-code', 'HfSettleAccountController@getBankCode'); //汇付 银行代码
Route::get('hf-provarea-code', 'HfProvAreaCodeController@getList'); //汇付 省市编码
//Route::post('mobile-login', 'LoginController@mobilelogin'); //验证码登录
Route::post('account-login', 'StoreAdminUsersController@login'); //账号密码登录
......@@ -72,6 +80,8 @@
Route::any('pay-notify', 'OrderController@payNotify'); //付款回调
Route::any('refund-notify', 'HfOrderController@refundNotify'); //退款回调
Route::get('send/config/update', 'SystemController@update');
Route::get('auto-to-commentstatus', 'SystemController@autoChangeReceiveStatus'); //定时任务--待领取状态下七天未领取,自动到待评价状态
......@@ -173,5 +183,14 @@
Route::post('scan-code-verifi', 'OrderController@scanCodeVerifi'); //扫码核销确认
Route::get('merchant-order-collect', 'OrderController@orderCollect'); //商户端首页统计
Route::post('hf-settle-account-delete', 'HfSettleAccountController@deleteAccount'); //汇付 删除结算账户
Route::post('hf-settle-account-member', 'HfSettleAccountController@createMemberAccount'); //汇付 创建普通用户结算账户
Route::post('hf-settle-account-company', 'HfSettleAccountController@createCompanyAccount'); //汇付 创建企业用户结算账户
Route::post('hf-settle-account-query', 'HfSettleAccountController@queryAccount'); //汇付 查询用户结算账户
});
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment