higreen / php-api
第三方服务,接口封装。
v1.0.1
2023-04-11 03:19 UTC
Requires
- php: ^7.0|^8.0
README
Installation
composer require higreen/php-api
Features
Usage
微信
小程序
use Higreen\Api\Weixin\Mini; $Mini = new Mini([ 'app_id' => '小程序ID', 'app_secret' => '小程序密钥', ]);
- 登录凭证校验
$session = $Mini->code2session($code);
2. 获取接口调用凭证
```php
$access_token = $Mini->getAccessToken();
- 获取小程序码
$res = Mini::getWXACodeUnlimit($access_token, [ 'scene' => '[str] [必填] [最大32个可见字符]', 'page' => '[str] [可选] [已经发布的小程序存在的页面]', 'width' => '[int] [可选] [二维码的宽度,单位 px,最小 280px,最大 1280px]', 'auto_color' => '[bol] [可选] [自动配置线条颜色]', 'line_color' => '[arr] [可选] [auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {"r":"xxx","g":"xxx","b":"xxx"} 十进制表示]', 'is_hyaline' => '[bol] [可选] [是否需要透明底色]', ]);
- 下发小程序和公众号统一的服务消息
$res = Mini::sendUniformMessage($access_token, [ 'touser' => '[必填] [str] [用户openid,可以是小程序的openid,也可以是mp_template_msg.appid对应的公众号的openid]', 'appid' => '[必填] [str] [公众号appid,要求与小程序有绑定且同主体]', 'template_id' => '[必填] [str] [公众号模板id]', 'url' => '[必填] [str] [公众号模板消息所要跳转的url]', 'data' => '[必填] [arr] [模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }]', 'pagepath' => '[可选] [str] [点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。]', ]);
- 解密数据
$data = Mini::decryptData($encryptedData, $session_key, $iv);
小程序-内容安全
use Higreen\Api\Weixin\MiniSecurity;
- 校验一张图片
$bool = MiniSecurity::checkImg($access_token, '图片链接');
- 检查一段文本
$bool = MiniSecurity::checkText($access_token, '文字内容');
小程序-图片识别
use Higreen\Api\Weixin\MiniOcr;
- 银行卡
$res = MiniOcr::bankcard($access_token, '图片链接');
- 营业执照
$res = MiniOcr::businessLicense($access_token, '图片链接');
- 驾驶证
$res = MiniOcr::driverLicense($access_token, '图片链接');
- 身份证
$res = MiniOcr::idcard($access_token, '图片链接');
- 通用印刷体
$res = MiniOcr::printedText($access_token, '图片链接');
- 行驶证
$res = MiniOcr::vehicleLicense($access_token, '图片链接');
公众号
use Higreen\Api\Weixin\Offi; $Offi = new Offi([ 'app_id' => '公众号ID', 'app_secret' => '公众号密钥', ]);
-
登录凭证校验
$session = $Offi->code2session($code);
-
获取接口调用凭据
$access_token = $Offi->getAccessToken();
-
获取用户信息
$userinfo = Offi::getUserinfo($access_token, 'openid');
-
获取微信JS接口的临时票据
$ticket = Offi::getJsapiTicket($access_token);
-
获取微信JS接口的权限配置
$config = Offi::getJsapiConfig($ticket, '网页的URL(可选)')
-
发送模板消息
$res = Offi::sendMessage($access_token, [ 'touser' => '[str] [必填] [接收者openid]', 'template_id' => '[str] [必填] [模板ID]', 'data' => '[arr] [必填] [模板数据]', ]);
-
是否关注公众号
$bool = Offi::isFollow($access_token, 'openid');
支付
use Higreen\Api\Weixin\Pay; $Pay = new Pay([ 'mch_id' => '商户ID', 'mch_key_v3' => '商户密钥V3', 'sslcert' => '证书路径', 'sslkey' => '证书密钥路径', ]);
-
下单
$res = $Pay->order('交易类型(大小写不限):JSAPI,APP,H5,Native', [ 'appid' => '[str] [必填] [微信生成的应用ID]', 'description' => '[str] [必填] [商品描述]', 'out_trade_no' => '[str] [必填] [商户系统内部订单号,同一个商户号下唯一]', 'total' => '[int] [必填] [订单总金额,单位为分]', 'notify_url' => '[int] [必填] [直接可访问的URL,不允许携带查询串,要求必须为https]', 'attach' => '[str] [可选] [附加数据,在查询API和支付通知中原样返回]', 'openid' => '[str] [可选] [JSAPI交易类型必传,用户在商户appid下的唯一标识]', 'type' => '[str] [可选] [H5交易类型必传,场景类型 示例值:iOS, Android, Wap]', ]);
-
查询订单
$res = $Pay->orderResult('商户系统内部订单号');
-
退款
$res = $Pay->refund([ 'out_trade_no' => '[str] [必填] [原支付交易对应的商户订单号]', 'out_refund_no' => '[str] [必填] [商户系统内部的退款单号,商户系统内部唯一]', 'total' => '[int] [必填] [原支付交易的订单总金额,币种的最小单位]', 'refund' => '[int] [必填] [退款金额,币种的最小单位]', 'reason' => '[str] [可选] [退款原因]', 'notify_url' => '[str] [可选] [异步接收微信支付退款结果通知的回调地址]', ]);
-
解密回调报文
$res = Pay::decryptResource('商户号APIV3密钥', '加密报文');
企业付款
use Higreen\Api\Weixin\Transfer; $Transfer = new Transfer([ 'mch_id' => '商户ID', 'mch_key' => '商户密钥', 'sslcert' => '证书路径', 'sslkey' => '证书密钥路径', ]);
- 到零钱
$res = $Transfer->balance([ 'partner_trade_no' => '[str] [必填] [商户订单号]', 'mch_appid' => '[str] [必填] [商户账号appid]', 'openid' => '[str] [必填] [用户openid]', 'amount' => '[int] [必填] [企业付款金额,单位为分]', 'desc' => '[str] [必填] [企业付款备注]', 're_user_name' => '[str] [可选] [收款用户姓名]', ]);
支付宝
小程序
use Higreen\Api\Alipay\Mini; $Mini = new Mini($init);
- 获取支付宝user_id
$user_id = $Mini->getUserId($code);
支付
use Higreen\Api\Alipay\Pay; $Pay = new Pay($init);
- APP支付
$res = $Pay->app([ 'subject' => '交易标题', 'out_trade_no' => '商户订单号', 'total_amount' => '订单总金额,单位为人民币(元)', ]);
- 小程序支付
$res = $Pay->mini([ 'subject' => '交易标题', 'out_trade_no' => '商户订单号', 'total_amount' => '订单总金额,单位为人民币(元)', 'buyer_id' => '支付宝用户的唯一userId', ]);
- 扫码支付
$res = $Pay->qrcode([ 'subject' => '交易标题', 'out_trade_no' => '商户订单号', 'total_amount' => '订单总金额,单位为人民币(元)', ]);
- 支付回调数据验证签名,验证成功返回请求参数
$res = Pay::checkSignature('支付宝公钥');
阿里云
短信
use Higreen\Api\Aliyun\Sms; $init = [ 'id' => '应用Access Key ID', 'secret' => '应用Access Key Secret', 'sign' => '短信签名', ]; $Sms = new Aliyun($init); $res = $Sms->send($phones, $template, $params);
百度云
语音
use Higreen\Api\Baidu\Speech; $init = [ 'api_key' => '[str] [必填] [应用公钥]', 'secret_key' => '[str] [必填] [应用密钥]', ]; $Speech = new Speech($init);
-
获取接口调用凭证
$access_token = $Speech->getAccessToken();
-
文字转语音
$res = $Speech->text2audio($access_token, [ 'text' => '[str] [必填] [文字]', ]);
腾讯云
短信
use Higreen\Api\Tencent\Sms; $init = [ 'id' => '密钥 ID', 'key' => '密钥 KEY', 'app_id' => '短信应用 SDKAppID', 'sign' => '短信签名', ]; $Sms = new Sms($init); # 发送单个手机号 $res = $Sms->sendSingle($template, $phone, $params); # 发送多个手机号 $res = $Sms->sendMulti($template, $phones, $params);
地图
use Higreen\Api\Tencent\Map; $Map = new Map('key');
- 地址定位
$res = $Map->locateByAddress($address);
- IP定位
$res = $Map->locateByIp($ip);
- 坐标定位
$res = $Map->locateByCoordinate($longitude, $latitude);
- 查询行政区域
$res = $Map->getDistrict($id = 0);// 子级行政区划
use Higreen\Api\Tencent\Faceid; $Faceid = new Faceid([ 'id' => '密钥 ID', 'key' => '秘钥 KEY', ]);
- 身份信息认证
$bool = $Faceid->verifyNameNumber('姓名', '身份证号码');
移动
号码认证
use Higreen\Api\Yidong\NumIdentify; $init = [ 'app_id' => 'APPID', 'app_key' => 'APPKEY', 'public_key' => '平台公钥', 'private_key' => '应用私钥.创建应用时,请使用同一对密钥', ]; $NumIdentify = new NumIdentify($init);
-
获取手机号
$phone = $NumIdentify->getPhoneNumber('token 业务凭证');
-
本机号码校验
$bool = $NumIdentify->isDevicePhone('未实现');