PHP code example of xudongyss / ali
1. Go to this page and download the library: Download xudongyss/ali library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
xudongyss / ali example snippets
use xudongyss\ali\pay\AliPay;
$appId = '';
/* 应用私钥 */
$merchantPrivateKey = '';
/* 支付宝公钥 */
$alipayPublicKey = '';
AliPay::init($appId, $merchantPrivateKey, $alipayPublicKey);
/* 订单号 */
$outTradeNo = '';
/* 订单金额 */
$totalAmount = 1;
/* 异步回调地址 */
$notifyUrl = '';
/* 订单标题 */
$subject = '';
/* 可选:同步跳转地址 */
$returnUrl = '';
/* 可选:公用回传参数,如果请求时传递了该参数,则返回给商户时会回传该参数。支付宝会在异步通知时将该参数原样返回 */
$passbackParams = '';
/* 可选:单位:分钟,该笔订单允许的最晚付款时间,逾期将关闭交易,取值:1 ~ 21600,默认值:10 */
$timeoutExpress = 10;
AliPay::tradePagePay($outTradeNo, $totalAmount, $notifyUrl, $subject, $returnUrl, $passbackParams, $timeoutExpress);
//返回值:html,可自动跳转的 POST 表单
/* 订单号 */
$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() 获取错误描述
//正常返回
use xudongyss\ali\oauth\AliOAuth;
$appId = '';
/* 应用私钥 */
$merchantPrivateKey = '';
/* 支付宝公钥 */
$alipayPublicKey = '';
AliOAuth::init($appId, $merchantPrivateKey, $alipayPublicKey);
/* 回调页面 */
$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:男性)。
)
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);
//
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');
/* 阿里云账号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
)
use xudongyss\ali\oss\AliCloudOss;
$AccessKeyId = '';
$AccessKeySecret = '';
$endpoint = 'oss-cn-shanghai.aliyuncs.com';
AliCloudOss::client($AccessKeyId, $AccessKeySecret, $endpoint,);
/* 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() 获取错误描述