xudongyss / ali
There is no license information available for the latest version (1.0.3) of this package.
Ali SDK
1.0.3
2021-07-06 02:09 UTC
Requires
This package is auto-updated.
Last update: 2025-03-06 10:08:55 UTC
README
[TOC]
安装
composer require xudongyss/ali
快速使用
支付宝 支付
初始化
require_once 'vendor/autoload.php'; use xudongyss\ali\pay\AliPay; $appId = ''; /* 应用私钥 */ $merchantPrivateKey = ''; /* 支付宝公钥 */ $alipayPublicKey = ''; AliPay::init($appId, $merchantPrivateKey, $alipayPublicKey);
PC 网站
/* 订单号 */ $outTradeNo = ''; /* 订单金额 */ $totalAmount = 1; /* 异步回调地址 */ $notifyUrl = ''; /* 订单标题 */ $subject = ''; /* 可选:同步跳转地址 */ $returnUrl = ''; /* 可选:公用回传参数,如果请求时传递了该参数,则返回给商户时会回传该参数。支付宝会在异步通知时将该参数原样返回 */ $passbackParams = ''; /* 可选:单位:分钟,该笔订单允许的最晚付款时间,逾期将关闭交易,取值:1 ~ 21600,默认值:10 */ $timeoutExpress = 10; AliPay::tradePagePay($outTradeNo, $totalAmount, $notifyUrl, $subject, $returnUrl, $passbackParams, $timeoutExpress); //返回值:html,可自动跳转的 POST 表单
APP 支付
/* 订单号 */ $outTradeNo = ''; /* 订单金额 */ $totalAmount = 1; /* 异步回调地址 */ $notifyUrl = ''; /* 订单标题 */ $subject = ''; /* 可选:公用回传参数,如果请求时传递了该参数,则返回给商户时会回传该参数。支付宝会在异步通知时将该参数原样返回 */ $passbackParams = ''; /* 可选:单位:分钟,该笔订单允许的最晚付款时间,逾期将关闭交易,取值:1 ~ 21600,默认值:10 */ $timeoutExpress = 10; AliPay::tradeAppPay($outTradeNo, $totalAmount, $notifyUrl, $subject, $passbackParams, $timeoutExpress); //返回值:APP 可直接使用返回调用支付,无需进行任何处理
手机网站 支付
/* 订单号 */ $outTradeNo = ''; /* 订单金额 */ $totalAmount = 1; /* 异步回调地址 */ $notifyUrl = ''; /* 订单标题 */ $subject = ''; /* 用户付款中途退出返回商户网站的地址 */ $quitUrl = ''; /* 可选:同步跳转地址 */ $returnUrl = ''; /* 可选:公用回传参数,如果请求时传递了该参数,则返回给商户时会回传该参数。支付宝会在异步通知时将该参数原样返回 */ $passbackParams = ''; /* 可选:单位:分钟,该笔订单允许的最晚付款时间,逾期将关闭交易,取值:1 ~ 21600,默认值:10 */ $timeoutExpress = 10; AliPay::tradeWapPay($outTradeNo, $totalAmount, $notifyUrl, $subject, $quitUrl, $returnUrl, $passbackParams, $timeoutExpress); //返回值:html,可自动跳转的 POST 表单
异步回调
AliPay::verifyNotify(); //返回值:异常返回 false, 使用 AliPay::getErrorMessage() 获取错误描述 //正常返回:原始数据:使用 AliPay::getNotifyData() 获取 Array ( [order_no] => 订单号 [total_amount] => 订单金额 [pay_no] => 支付交易号 [pay_time] => 支付时间 ) //业务处理完成后 AliPay::success();//调用后,请不要有任何输出
交易退款
/* 交易创建时传入的商户订单号 */ $outTradeNo = ''; /* 需要退款的金额,该金额不能大于订单金额,单位为元,支持两位小数 */ $refundAmount = 1; AliPay::tradeRefund($outTradeNo, $refundAmount); //返回值:异常返回 false, 使用 AliPay::getErrorMessage() 获取错误描述 //正常返回
支付宝 授权登录
初始化
require_once 'vendor/autoload.php'; use xudongyss\ali\oauth\AliOAuth; $appId = ''; /* 应用私钥 */ $merchantPrivateKey = ''; /* 支付宝公钥 */ $alipayPublicKey = ''; AliOAuth::init($appId, $merchantPrivateKey, $alipayPublicKey);
获取授权 URL
/* 回调页面 */ $redirect_uri = ''; /* * 商户自定义参数,用户授权后,重定向到 redirect_uri 时会原样回传给商户。 * 为防止 CSRF 攻击,建议开发者请求授权时传入 state 参数, * 该参数要做到既不可预测,又可以证明客户端和当前第三方网站的登录认证状态存在关联,并且不能有中文 */ $state = ''; /* * 可选:默认值:auth_user,auth_base * auth_base:静默授权,用户授权并自动跳转到回调页的。用户感知的就是直接进入了回调页 * auth_user:以 auth_user 为 scope 发起的网页授权,是用来获取用户的基本信息的(比如头像、昵称等)。 * 但这种授权需要用户手动同意;用户同意后,就可在授权后获取到该用户的基本信息。 * 若想获取用户信息,scope 的值中需要有该值存在,如 scope=auth_user,auth_base */ $scope = ''; AliOAuth::oauthUrl($redirect_uri, $state, $scope);
获取授权访问令牌
/* 授权码,用户对应用授权后得到,auth_code */ $code = ''; AliOAuth::getAccessToken($code); //返回值 //异常返回:false, 使用 AliOAuth::getErrorMessage() 获取错误描述 //正常返回 Array ( [user_id] => 支付宝用户的唯一userId [access_token] => 访问令牌。通过该令牌调用需要授权类接口 [expires_in] => 访问令牌的有效时间,单位是秒 [refresh_token] => 刷新令牌。通过该令牌可以刷新access_token [re_expires_in] => 刷新令牌的有效时间,单位是秒 )
获取用户信息
/* 通过auth_code获取的access_token */ $authToken = ''; AliOAuth::getUserInfo($authToken); //返回值 //异常返回:false, 使用 AliOAuth::getErrorMessage() 获取错误描述 //正常返回 Array ( [user_id] => 支付宝用户的唯一userId [avatar] => 用户头像地址 [province] => 省份名称 [city] => 市名称 [nick_name] => 用户昵称 [gender]=> 【注意】只有is_certified为T的时候才有意义,否则不保证准确性.性别(F:女性;M:男性)。 )
阿里云 短信
初始化
require_once 'vendor/autoload.php'; use xudongyss\ali\sms\AliCloudSms; $accessKeyId = ''; $accessSecret = ''; AliCloudSms::init($accessKeyId, $accessSecret);
发送短信验证码
/* 手机号 */ $mobile = ''; /* 短信验证码 */ $code = ''; /* 短信模板 */ $templateCode = ''; /* 短信签名 */ $signName = ''; /* 短信模板中的自定义参数,除 code 外。非必要参数 */ $extend = []; /* 成功返回接口返回值数组, 失败返回 false, 可通过 getErrorMessage 方法回去错误提示 */ $result = AliCloudSms::sendSms($mobile, $code, $templateCode, $signName, $extend); echo '<pre>';print_r($result); //
阿里云 STS
初始化
require_once 'vendor/autoload.php'; use xudongyss\ali\sts\AliCloudSts; $accessKeyId = ''; $accessSecret = ''; /* 地域 ID: https://help.aliyun.com/document_detail/66053.html?spm=a2c4g.11186623.6.790.703c39afrZf5UX */ $regionId = 'cn-shanghai'; AliCloudSts::init($accessKeyId, $accessSecret, 'cn-shanghai');
OSS
/* 阿里云账号ID。您可以通过登录阿里云控制台,将鼠标悬停在右上角头像的位置,单击安全设置进行查看 */ $accountID = '1522108238103348'; /* RAM角色名称。您可以通过登录RAM控制台,单击左侧导航栏的RAM角色管理,在RAM角色名称列表下进行查看 */ $roleName = 'app'; $sts = AliCloudSts::oss($accountID, $roleName); //返回值 //异常返回:false, 使用 AliCloudSts::getErrorMessage() 获取错误描述 //正常返回 Array ( [SecurityToken] => [AccessKeyId] => [AccessKeySecret] => [Expiration] => 2020-07-20T04:38:28Z )
阿里云 OSS
初始化
快速初始化
require_once 'vendor/autoload.php'; use xudongyss\ali\oss\AliCloudOss; $AccessKeyId = ''; $AccessKeySecret = ''; $endpoint = 'oss-cn-shanghai.aliyuncs.com'; AliCloudOss::client($AccessKeyId, $AccessKeySecret, $endpoint,);
STS临时授权访问OSS(推荐使用)
/* AliCloudSts::oss 的返回值 */ $sts = []; /* https://help.aliyun.com/document_detail/31837.html?spm=a2c4g.11186623.2.14.4e69221b8az2Ld#concept-zt4-cvy-5db */ $endpoint = 'oss-cn-shanghai.aliyuncs.com'; AliCloudOss::client($sts['AccessKeyId'], $sts['AccessKeySecret'], $endpoint, $sts['SecurityToken']);
上传文件
/* 存储空间名称 */ $bucket = ''; /* 文件名称 */ $object = ''; /* 本地文件:本地文件路径加文件名包括后缀组成 */ $file = ''; $oss = AliCloudOss::uploadFile($bucket, $object, $file); //返回值 //异常返回:false, 使用 AliCloudOss::getErrorMessage() 获取错误描述