chowjiawei / laravel-help-plugin
Integrating useful auxiliary functions into laravel,Assistant tools based on laravel.
Requires
- php: ^7.0|^8.0
- guzzlehttp/guzzle: ^6.3|^7.0
- laravel/framework: ^6.0|^7.0|^8.0|^9.0
- overtrue/laravel-wechat: ^5.0|^6.0
- torann/geoip: ^3.0.2
Requires (Dev)
README
- 通知发送(包括但不限于以下频道【更多待接入】)
-
- 钉钉机器人
-
- 企业微信机器人
-
- 微信模板消息
-
- 飞书机器人
- 威妥码拼音互转获取
- 汇率实时互转获取(Openexchangerates Api)
- 全球城市中英互转获取 及更新
- 抖音新交易系统 (非旧交易系统 目前旧交易系统已经被官方废弃 ,正在更新) 本包将持续更新!请详细文档托管 https://learnku.com/docs/laravel-help-plugin
如发现bug 请直接提issue或者直接提pr,造成的不便请谅解。
Laravel辅助工具包
目录
- 安装说明
- 发布配置文件
- 注册门面方法
- 消息驱动
- 直接消息推送
- 国家获取转换
- Openexchangerates汇率实时获取
- 扩展Artisan命令
- 威妥码互转汉语拼音-移步详细文档查看
- 抖音新交易系统
JetBrains 支持的项目
非常感谢 Jetbrains 为我提供了从事这个和其他开源项目的许可。
安装说明
环境要求 本包依托于Laravel框架,其他框架暂不适用
- php => ^7.0
- guzzlehttp/guzzle => ^6.3"
- laravel/framework => ~5.5|~6.0|~7.0|~8.0|~9.0
- overtrue/laravel-wechat => ~5.0
使用composer安装
composer require chowjiawei/laravel-help-plugin
发布配置文件
- 使用工具包请运行Artisan命令
php artisan vendor:publish --provider="Chowjiawei\Helpers\Providers\HelpPluginServiceProvider"
- 如若使用微信模板消息则需要发布easywechat配置,本包默认内置easywechat:
php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"
微信包的配置 按需填写 公共号配置 official_account
配置省略
注册facade
本报提供laravel Facade便捷,如需使用可按如下配置
打开config/app.php
找到 providers
项添加
\Chowjiawei\Helpers\Providers\HelpPluginServiceProvider::class,
找到 'aliases'添加
'Helper'=>\Chowjiawei\Helpers\Facade\Helper::class
消息驱动
钉钉机器人消息发送驱动
use Chowjiawei\Helpers\Channels\DingtalkRobotChannel;
public function via($notifiable)
{
return [DingtalkRobotChannel::class];
}
微信机器人消息发送驱动
use Chowjiawei\Helpers\Channels\WechatRobotChannel;
public function via($notifiable)
{
return [WechatRobotChannel::class];
}
微信模板消息发送驱动
该驱动支持单用户发送和广播功能
use Chowjiawei\Helpers\Channels\WechatTemplateMessageChannel;
public function via($notifiable)
{
return [WechatTemplateMessageChannel::class];
}
Notification::route('dingtalk_robot', $key)->notify(new YourNotification());
Notification::route('wechat_robot', $key)->notify(new YourNotification());
Notification::route('Wechat_template_message', $key)->notify(new YourNotification());
飞书机器人消息发送驱动
use Chowjiawei\Helpers\Channels\DingtalkRobotChannel;
public function via($notifiable)
{
return [DingtalkRobotChannel::class];
}
直接消息推送
钉钉:
use Chowjiawei\Helpers\Notifications\DingtalkRobotNotification;
Notification::route('dingtalk_robot', env("DINGTALK_ROBOT")) ->notify(new DingtalkRobotNotification($message,$title));
企业微信:
use Chowjiawei\Helpers\Notifications\WechatRobotNotification;
Notification::route('wechat_robot', env("WECHAT_ROBOT)")) ->notify(new WechatRobotNotification($message));
微信模板消息:
use Chowjiawei\Helpers\Notifications\WechatTemplateMessageNotification;
- 不指定用户(广播用户)
Notification::route('WechatTemplateMessage', null)->notify(new WechatTemplateMessageNotification($data));
- 指定用户
$user=['odAYnxOVy7vS266666666','odAYnxEuuTCf66666fov276666'];
$template="iA2V1K45vS8IgUEvE666666EH3R-V-66666";
$data=[
"order_id"=>[
"value"=>"20200414234478934343",
"color"=>"#173177"
],
"package_id"=>[
"value"=>"SF4345454534",
"color"=>"#173177"
],
"remark"=>[
"value"=>'模板消息发送',
"color"=>"#173177"
]
];
Notification::route('WechatTemplateMessage', $user)->notify(new WechatTemplateMessageNotification($data, $template));
飞书:
use Chowjiawei\Helpers\Notifications\LarkRobotNotification;
Notification::route('lark', env("LARK_ROBOT")) ->notify(new DingtalkRobotNotification($message));
Artisan命令示例:
由于业务不同,工具默认提供了通知Notification模板,可以通过extend Artisan命令选择代码生成器生成
国家获取转换
use Chowjiawei\Helpers\PhpHelps\LaravelHelp;
初始化辅助工具
$help=new LaravelHelp();
获取所有国家
$help->getAllCountry();
根据国家代码转国家名字
$help->getCountryName('CN');
根据国家名字转国家代码
$help->getCountryName('China');
or 还有更多可以下载包后体验哦
Helper::allCountry();
Openexchangerates汇率实时获取
use Chowjiawei\Helpers\Exchange\Exchange;
//获取实时汇率
$help->getChangerates();
将为您返回完整的汇率及接口信息,以下省略篇幅
{
"disclaimer": "Usage subject to terms: https://openexchangerates.org/terms",
"license": "https://openexchangerates.org/license",
"timestamp": 1622097300,
"base": "USD",
"rates": {
"AED": 3.6731,
"AFN": 79.130257,
"ALL": 101.073262,
"AMD": 520.828816,
"ANG": 1.796011,
"AOA": 643.121,
"ARS": 94.4963,
"AUD": 1.291358,
"AWG": 1.8,
"AZN": 1.700805,
"BAM": 1.604705,
"BBD": 2,
"BDT": 85.048855,
"BGN": 1.601902,
"BHD": 0.377012,
"BIF": 1974.680206,
use Chowjiawei\Helpers\Exchange\Exchange;
//获取特定汇率
$help->getSymbolChangerates(['GBP','EUR','AED','CAD']);
将为您返回指定的汇率及接口信息
{
disclaimer: "https://openexchangerates.org/terms/",
license: "https://openexchangerates.org/license/",
"timestamp": 1424127600,
"base": "USD",
"rates": {
"AED": 3.67295,
"CAD": 0.99075,
"EUR": 0.793903,
"GBP": 0.62885
}
}
扩展Artisan命令
插件为您提供了一个支持中文和英文的扩展命令,您可以用命令呼出,命令提供了以下功能
php artisan extend --chinese
中文
php artisan extend
英文
威妥码拼音
单汉语拼音转威妥码拼音
Helper::changeHWWord("zhou");
长句汉语拼音转威妥码拼音
Helper::changeHWWord("zhou jia wei hao shuai");
单汉语拼音转威妥码拼音
Helper::changeWHWord("chou");
长句汉语拼音转威妥码拼音
Helper::changeWHWord("chou chia wei hao shuai a");
抖音新交易系统
use Chowjiawei\Helpers\Services\TTV2Service;
helpers.php
配置文件中 tiktok
选项 全部需要配置完全才可以使用
- 查询订单
$tiktokService= new TTV2Service(); $tiktokService->query("站内订单号,非抖音侧订单号"); 正确时返回数组 其余返回空数组
- 发起退款 (单个订单单个订单项)
$tiktokService= new TTV2Service(); $tiktokService->refund("站内订单号,非抖音侧订单号", '价格 为分', '$itemOrderId'); 正确时返回true 其余返回false
- 发起退款 (单个订单多个订单项)
$item= [ [ "item_order_id" => '', "refund_amount" => (int)$price ], [ "item_order_id" => '', "refund_amount" => (int)$price ], ]; $tiktokService= new TTV2Service(); $tiktokService->refundManyItem("站内订单号,非抖音侧订单号",$item); 正确时返回true 其余返回false
- 同意退款
$tiktokService= new TTV2Service(); $tiktokService->agreeRefund("站内订单号,非抖音侧订单号"); 正确时返回true 其余返回false
- 查询退款
$tiktokService= new TTV2Service(); $tiktokService->getRefund("站内订单号,非抖音侧订单号"); 返回数组
- 发起分账
$tiktokService= new TTV2Service(); $tiktokService->settle("站内订单号,非抖音侧订单号", "分账描述"); 正确时返回true 其余返回false
- 设置回调配置
config
中配置完成后 $settingData
可以不传
如果需要再次自定义或者扩展更多糊掉参数 可以传详细参数 更多参数参考抖音
$settingData = [ 'create_order_callback' => "", 'refund_callback' => "", 'pay_callback' => "", ]; $tiktokService= new TTV2Service(); $tiktokService->settingReturn(array $settingData=[]); 正确时返回true 其余返回false
- 查询回调配置
$tiktokService= new TTV2Service(); $tiktokService->getSettingReturn(); 正确时返回数组,其余返回空数组
- 支付回调
$tiktokService= new TTV2Service(); $tiktokService->return($request); //控制器内 直接将接受的Request $request 传入return方法,即可自动验签,并返回接收参数 返回 `status` 正确为`true` 附带 `data`数据 错误为 `false`
如果业务处理失败 需要手动返回抖音成功
$tiktokService->returnOK();
如果业务处理失败 需要手动返回抖音失败
$tiktokService->returnError($result='失败原因,可省略');
- 预下单回调
$tiktokService= new TTV2Service(); $tiktokService->return($request); //控制器内 直接将接受的Request $request 传入return方法,即可自动验签,并返回接收参数
如果业务处理失败 需要手动返回抖音成功
$tiktokService->returnOK();
如果业务处理失败 需要手动返回抖音失败
$tiktokService->returnError($result='失败原因,可省略');
建议将数组内数据 存起来 后续退款等操作都需要用 抖音不支持二次查询某些字段
如果需要退款 必须存储 item_order_id_list 获取如下:
$itemOrderId = json_decode($extendItem['msg'], true)['goods'][0]['item_order_id_list'][0];
- 退款回调
$tiktokService= new TTV2Service(); $tiktokService->refundReturn($request);
如果业务处理失败 需要手动返回抖音成功
$tiktokService->returnOK();
如果业务处理失败 需要手动返回抖音失败
$tiktokService->returnError($result='失败原因,可省略');
- 分账回调
$tiktokService= new TTV2Service(); $tiktokService->settleCallback($request);
如果业务处理失败 需要手动返回抖音成功
$tiktokService->returnOK();
如果业务处理失败 需要手动返回抖音失败
$tiktokService->returnError($result='失败原因,可省略');