# 支付宝
支付宝组件用于实现支付宝在线支付功能。
申请地址:[https://www.alipay.com](https://www.alipay.com)
其他产品也可以使用该组件,请登录 [GITHUB](https://github.com/houdunwang/alipay) 查看源代码与说明文档。
[TOC]
## 配置文件
组件可使用配置文件 system/config/alipay.php 进行初始配置。
```
return [
//应用ID,您的APPID。
'app_id' => "",
//商户私钥,使用支付宝提供的签名生成工具创建
'merchant_private_key' => "",
//异步通知地址
'notify_url' => "http://www.houdunwang.com/notifyUrl",
//同步跳转
'return_url' => "http://www.houdunwang.com/alip/returnUrl",
//编码格式
'charset' => "UTF-8",
//签名方式
'sign_type' => "RSA2",
//支付宝网关
'gatewayUrl' => "https://openapi.alipay.com/gateway.do",
//支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。使用支付宝提供的签名生成工具创建
'alipay_public_key' => "",
];
```
## 发起支付
```
$data = [
//商户订单号,商户网站订单系统中唯一订单号,必填
'WIDout_trade_no' => time(),
//订单名称,必填
'WIDsubject' => '定单名称',
//付款金额单位元,必填
'WIDtotal_amount' => 0.01,
//商品描述,可空
'WIDbody' => '定单描述',
];
AliPay::PagePay($data);
```
## 通知处理
通知分同步通知与异步通知两种形式,同步通知用于为用户显示支付成功或失败的页面。异步通知用于修改定单状态。
#### 同步通知
```
//签名验证
if(AliPay::signCheck()){
//商户订单号
$out_trade_no = htmlspecialchars($_GET['out_trade_no']);
//支付宝交易号
$trade_no = htmlspecialchars($_GET['trade_no']);
echo "验证成功<br />支付宝交易号:".$trade_no;
}else{
echo '支付失败';
}
```
#### 异步通知
```
$alipaySevice = new \AlipayTradeService(Config::get('alipay'));
//签名验证
if ( ! AliPay::signCheck()) {
return 'fail';
}else{
//商户订单号
$out_trade_no = $_POST['out_trade_no'];
//支付宝交易号
$trade_no = $_POST['trade_no'];
//交易状态
$trade_status = $_POST['trade_status'];
if ($_POST['trade_status'] == 'TRADE_FINISHED') {
//支付成功时的业务处理
} else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
//交易完成时的业务处理
}
//必须返回以下内容给支付宝
return 'success';
}
```
- 文档已经迁移到后盾人
- 介绍
- 框架特性
- 开发规范
- 许可协议
- 作者向军
- 安装框架
- 更新框架
- 基础
- 入口文件
- 应用配置
- 优雅链接
- 目录结构
- 系统常量
- 自动加载
- 应用密钥
- 系统函数
- CSRF保护
- 依赖注入
- 跨域访问
- 配置
- 配置文件
- 基本功能
- 扩展配置
- c 函数
- 控制器
- 定义声明
- 基本使用
- 相关函数
- 响应消息
- 路由
- 基础知识
- 基础路由
- 路由参数
- 参数检测
- 依赖注入
- 控制器
- 分组路由
- RESTful
- 别名路由
- 数据
- 配置相关
- 核心操作
- 查询构造器
- 日志记录
- 分页处理
- 事务处理
- 函数相关
- 数据库
- 数据迁移
- 数据填充
- 模型
- 定义模型
- 模型动作
- 模型验证
- 自动完成
- 自动过滤
- 字段保护
- 数据填充
- 多表关联
- 分页处理
- 仓库
- 数据仓库
- 查询规则
- 视图
- 基础知识
- 模板配置
- 模板文件
- 分配数据
- 系统标签
- 扩展标签
- 缓存模板
- 模板继承
- 视图函数
- widget
- vue组件
- 中间件
- 中间件
- 缓存
- 基本操作
- 文件缓存
- 数据表缓存
- 服务
- 服务容器
- 定制服务
- 相关函数
- 请求
- 基本使用
- 请求扩展
- 测试
- 基础知识
- 基本使用
- HTTP测试
- 调试
- 调试模式
- 日志管理
- 组件
- 多语言
- 响应处理
- Cookie
- Session
- 验证码
- XML
- 自动验证
- 文件处理
- 压缩解压
- RBAC
- 数组增强
- 分页管理
- 图像处理
- 生成静态
- 加密解密
- 字符串
- 数据集合
- 工具服务
- 目录操作
- 邮件发送
- CURL
- QQ登录
- 数据备份
- 购物车
- 日志处理
- 命令组件
- 二维码
- 后盾云
- 日期处理
- 阿里
- 支付宝
- 阿里云直播
- 阿里云短信
- 阿里云邮件
- 阿里云OSS
- SOCKET
- 启动与关闭
- 前端
- 微信