xudongyss/ali 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

xudongyss/ali

Composer 安装命令:

composer require xudongyss/ali

包简介

Ali SDK

README 文档

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() 获取错误描述

xudongyss/ali 适用场景与选型建议

xudongyss/ali 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 6 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 11 月 26 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 xudongyss/ali 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 xudongyss/ali 我们能提供哪些服务?
定制开发 / 二次开发

基于 xudongyss/ali 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 6
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2020-11-26