# 支付寶網頁支付配置
注意阿里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開發者賬戶
- 多主題開發
- 新建主題
- 目錄結構
- 模板變量
- 定制安裝部署