#支付宝
框架整合了支付宝,这对众多使用HDPHP框架的同学来说是个好消息。
申请地址:[https://www.alipay.com](https://www.alipay.com)
##使用
###配置文件
Config/alipay.php
###路由设置
```
//服务器异步通知页面路径
Route::get('alipaynotify','Home/Index/alipaynotify');
//页面跳转同步通知页面路径
Route::get('alipayreturn','Home/Index/alipayreturn');
```
###控制器
```
<?php namespace Home\Controller;
use Hdphp\Controller\Controller;
//支付宝通知处理类
use Hdphp\Alipay\Lib\AlipayNotify;
//测试控制器
class IndexController extends Controller
{
public function pay()
{
$data = array(
'out_trade_no' => '162',//定单号
'subject' => '订单名称',//订单名称
'total_fee' => '0.1',//付款金额
'body' => '快学网 好好学',//订单描述
'show_url' => 'http://kuaixuewang.com',//商品展示地址
);
//开始支付
Alipay::pay($data);
}
//服务器异步通知页面路径
public function alipaynotify()
{
$alipayNotify = new AlipayNotify(C('alipay'));
$verify_result = $alipayNotify->verifyNotify();
if ($verify_result) {//验证成功
//请在这里加上商户的业务逻辑程序代...
//商户订单号
$out_trade_no = $_POST['out_trade_no'];
//支付宝交易号
$trade_no = $_POST['trade_no'];
//交易状态
$trade_status = $_POST['trade_status'];
if ($_POST['trade_status'] == 'TRADE_FINISHED' || $_POST['trade_status'] == 'TRADE_SUCCESS') {
//判断该笔订单是否在商户网站中已经做过处理
//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
//请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的
//如果有做过处理,不执行商户的业务程序
//注意:
//付款完成后,支付宝系统发送该交易状态通知
}
//——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
echo "success"; //不要修改或删除
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
} else {
//验证失败不要修改或删除
echo "fail";
}
}
//页面跳转同步通知页面路径
public function alipayreturn()
{
//计算得出通知验证结果
$alipayNotify = new AlipayNotify(C('alipay'));
$verify_result = $alipayNotify->verifyReturn();
if ($verify_result) {//验证成功
//请在这里加上商户的业务逻辑程序代码...
//商户订单号
$out_trade_no = $_GET['out_trade_no'];
//支付宝交易号
$trade_no = $_GET['trade_no'];
//交易状态
$trade_status = $_GET['trade_status'];
if ($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
//判断该笔订单是否在商户网站中已经做过处理
//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
//如果有做过处理,不执行商户的业务程序
} else {
echo "trade_status=" . $_GET['trade_status'];
}
echo "验证成功<br />";
//——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
} else {
//验证失败
//如要调试,请看alipay_notify.php页面的verifyReturn函数
echo "验证失败";
}
}
}
```
- 基础
- 框架特性
- 开发规范
- 许可协议
- 安装
- 伪静态
- 作者
- 更新日志
- 架构
- 入口文件
- 目录结构
- 系统常量
- 自动加载
- 应用目录
- 配置
- 设置配置
- 检测配置
- 获取配置
- 配置文件
- 扩展配置
- c 函数
- 函数
- 工具函数
- 控制器
- 定义
- 空方法
- 基本访问
- 路由
- 基础路由
- 控制器路由
- 路由参数
- 参数检测
- 分组路由
- RESTful
- 数据库
- 配置
- 核心操作
- 查询构造器
- 表操作
- 事务处理
- 函数
- 查询日志
- 模型
- 定义模型
- 模型动作
- 构建数据
- 模型验证
- 自动完成
- 自动过滤
- 字段映射
- 表单令牌
- 字段保护
- 视图模型
- 关联模型
- 魔术方法
- 视图
- 模板配置
- 模板文件
- 分配数据
- 请求响应
- 系统标签
- 扩展标签
- 缓存模板
- 模板继承
- 中间件与钩子
- 中间件
- 钩子
- 缓存
- 基础
- Mysql缓存
- 文件缓存
- 调试
- Trace
- 日志
- 调试模式
- 服务
- 介绍
- 创建服务
- 系统服务
- 自动完成
- 压缩&解压
- 自动验证
- 上传
- 字符串
- 响应
- 请求数据
- RBAC
- QQ整合登录
- 分页
- 邮件
- 语言
- 图像
- 生成静态
- 目录操作
- 数据处理
- curl
- 加密
- Cookie
- 验证码
- 购物车
- 备份
- 数组
- 支付宝
- xml
- 工具
- 云接口
- 前端组件
- 基本配置
- 列表框日期选择
- CSS 样式
- URL操作
- 数据验证
- 城市选择
- JSON处理
- 幻灯片
- checkbox滑动样式
- 消息框
- md5
- 模态框
- 上传表单样式
- 选择字体
- 剪贴板
- 上传图片
- 上传文件
- 拾色器 spectrum
- 列表框 select2
- 百度地图
- 二维码生成
- 表单提交
- 时间管理 moment
- 加载动画
- 百度编辑器
- Cookie操作
- 图标库 font-awesome
- emotion表情
- domReady
- 日期 datetimepicker
- 日期区间列表 daterangepicker
- 日期区间 daterangepicker
- 时间 clockpicker
- 图表
- 光标控制 caret
- 表单验证 bootstrapValidator
- 微信
- 配置项
- 绑定开发者
- 获取access_token
- 网页授权获取用户基本信息
- 微信支付
- 微信红包
- 用户管理
- 二维码
- 回复消息
- 消息管理
- 素材管理
- 会员组管理
- 事件管理
- 消息群发
- 客服
- 自定义菜单
- 菜单管理
- 菜单事件
- 附录
- 升级环境
- HTTP 状态码
- GIT 命令