# 支付宝网页支付配置
注意阿里2017年对支付宝接口进行了全面升级,所以旧版支付插件(<=1.6.2)不支持新版接口了,如果由新版接口需求,请联系官方升级支付插件至1.7.0以上版本。
## 1.6.2版本钱包模块兼容修改方法
在RechargeController.class.php和IndexController.class.php找到下面两端代码删掉。
// 兼容支付宝Wap和App
if (request()->isMobile() && $pay_type === 'alipay' && !C('IS_API')) {
$pay_data['pay_type'] = 'aliwappay';
}
if ($pay_type === 'alipay' && C('IS_API')) {
$pay_data['pay_type'] = 'alipayapp';
}
// 前端仍然只识别alipay不识别alipayapp
if ($pay_type === 'alipayapp') {
$pay_type = 'alipay';
}
## 调用方法
1、命名空间
use Addons\Pay\ThinkPay\Pay;
2、构造订单数据
$pay_type = 'alipay'; // 支付方式alipay wxpay等等
$pay_data['out_trade_no'] = create_out_trade_no();
$pay_data['money'] = sprintf("%0.2f", I('post.money'));
$pay_data['pay_type'] = $pay_type;
$pay_data['title'] = C('WEB_SITE_TITLE')."余额充值";
$pay_data['body'] = C('WEB_SITE_TITLE')."余额充值";
3、根据指定的支付方式从支付插件获取相应的配置
// 获取支付配置
$info['pay_type'] = $_POST['paytype']; // 这是前台用户选择的支付方式,比如用户选择了微信,那么这个值就是wxpay
$pay_config = D('Addons://Pay/Pay')->pay_config($info['pay_type']);
$pay_config['notify_url'] = U("notify", array('apitype' => $pay_type, 'out_trade_no' => $info['out_trade_no']), false, true);
$pay_config['return_url'] = U("my", array('apitype' => $pay_type, 'out_trade_no' => $info['out_trade_no']), false, true);
4、调用支付插件
// APP支付则返回签名字符串
if (C('IS_API')) { // 这是OpenCMF的接口标志,可以更具自己实际需求更改标记
// 订单
$info['out_trade_no'] = 自己生成一个订单号;
$info['money'] = 8888; // 订单支付的金额
$info['title'] = "订单标题";
$info['body'] = "订单标题";
$pay = new Pay($info['pay_type'], $pay_config);
$sign = $pay->buildRequestForm($info);
if ($sign) {
$this->success('打开支付', null, array('pay_type' => $info['pay_type'], 'json' => $sign['json'], 'string' => $sign['string']));
// 这里就是返回给App的支付字符串,App接受后取出json字段然后传给SDK即可
} else {
$this->error('预支付订单生成失败');
}
} else {
// 这里是网页支付
pay = new Pay($info['pay_type'], $pay_config);
echo $pay->buildRequestForm($info);
}
- 简介
- 环境要求
- 安装系统
- 目录结构
- 常见问题
- 基础知识
- 编辑器
- 前端规范
- 前端框架文档
- Builder教程
- Builder的来历
- ListBuilder使用
- setMetaTitle
- addTopButton
- setSearch
- addSearchItem
- setTabNav
- addTableColumn
- setTableDataList
- setTableDataListKey
- setTableDataPage
- addRightButton
- alterTableData
- setExtraHtml
- setTemplate
- FormBuilder使用
- setMetaTitle
- setTabNav
- setExtraItems
- setPostUrl
- addFormItem
- setFormData
- setExtraHtml
- setAjaxSubmit
- setTemplate
- 扩展FormBuilder
- 模块开发
- 创建模块
- 描述文件
- 模型( M )
- 模版( V )
- 控制器( C )
- API接口
- 核心模块
- 文件上传
- 微信小程序模块
- 注册登陆接口
- 钱包模块
- 统一支付
- Cms模块
- 幻灯片接口
- 文档列表接口
- 文档详情接口
- 发表评论接口
- 评论列表接口
- 收藏的文档接口
- 收藏接口
- 分类列表接口
- IM模块
- 发送消息接口
- 最近聊天列表接口
- 查询新消息接口
- 插件相关
- 短信插件
- 支付插件
- 支付宝支付
- 微信支付
- 站群模块
- 模板开发
- 准备工作
- 目录结构
- 数据调用
- 专题
- 插件开发
- 图片显示
- 获取用户信息
- 判断用户登陆
- 表单提交AjaX
- 文件上传
- 2.0兼容写法
- 模板标签
- 核心模块
- Cms模块
- 栏目分类调用
- Cordova
- 配置跨域支持
- 本地开发调试教程
- 打包成apk和ipa
- 自定义APP信息
- 常见问题
- 申请Apple开发者账户
- 多主题开发
- 新建主题
- 目录结构
- 模板变量
- 定制安装部署