赞
踩
1.调用多个第三方的接口,比如调用微信、微信视频号、小红书接口等
说明:
1.代码结构清晰,方便管理代码
1.OpenBase.php
<?php /** * 第三方开放接口基类 */ namespace common\open; use Yii; use yii\base\Component; use common\exceptions\SystemException; abstract class OpenBase extends Component { /** * 创建对象 * @param string $name 要创建的对象的类名 * @param bool $isSingle 单例模式 * @return static */ public static function createObject($name = '', $isSingle = true) { if (empty($name)) { $name = static::class; } if ($isSingle && !Yii::$container->hasSingleton($name)) { Yii::$container->setSingleton($name); } return Yii::createObject($name); } /** * GET请求方法 * @param string $path 接口路径 * @param array $queryParams 请求参数 * @param array $headers 请求头 * @param array $options 请求选项 * @return array * @throws SystemException */ public function get( string $path, array $queryParams = [], array $headers = [], array $options = [] ) { return $this->request('get', $path, $queryParams, [], $headers, $options); } /** * POST 请求方法 * @param string $path 接口路径 * @param array $bodyParams 请求参数 * @param array $queryParams 请求参数 * @param array $headers 请求头 * @param array $options 请求选项 * @return array * @throws SystemException */ public function post( string $path, array $bodyParams = [], array $queryParams = [], array $headers = [], array $options = [] ) { return $this->request('post', $path, $queryParams, $bodyParams, $headers, $options); } /** * 请求方法 * @param string $method 请求方法 * @param string $path 接口路径 * @param array $queryParams 请求参数 * @param array $bodyParams 请求参数 * @param array $headers 请求头 * @param array $options 请求选项 * @return array * @throws SystemException */ abstract protected function request($method, $apiMethod, $queryParams = [], $bodyParams = [], $headers = [], $options = []); }
此处的单例可以减少对象创建。static::class 知识点可参考:
https://learnku.com/articles/74554
2.GoodsApi.php
<?php namespace common\open\weixin\channels\api; use common\exceptions\SystemException; use Yii; use common\open\weixin\channels\ChannelsBase; class GoodsApi extends ChannelsBase { /** 图片上传 */ const API_UPLOAD_IMG = 'basics/img/upload'; /** 商品上传 */ const API_UPLOAD_GOODS = 'product/add'; /** 生效的品牌列表 */ const API_VALID_BRAND = 'brand/valid/list/get'; /** 获取所有的类目 */ const API_ALL_CATEGORY = 'category/all'; /** 获取类目信息 */ const API_ONE_CATEGORY = 'category/detail'; /** 可用类目 */ const API_VALID_CATEGORY = 'category/availablesoncategories/get'; /** 运费模板列表*/ const API_FREIGHT_TEMPLATE_LIST = 'merchant/getfreighttemplatelist'; /** 运费模板详情 */ const API_FREIGHT_TEMPLATE_DETAIL = 'merchant/getfreighttemplatedetail'; const API_ADDRESS = 'merchant/address/list'; const API_ADDRESS_DETAIL = 'merchant/address/get'; /** * @desc:图片上传 * @see:https://developers.weixin.qq.com/doc/channels/API/basics/img_upload.html * @param array $bodyParams * @param array $queryParams * @return array * @throws SystemException */ public static function uploadImg(array $bodyParams, array $queryParams=[]): array { $res = self::createObject()->post(self::API_UPLOAD_IMG, $bodyParams,$queryParams); return $res['pic_file'] ?? ''; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。