多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 支付宝支付(即时到账) ### 说明 使用支付宝支付插件可以快速对程序进行集成支付宝支付功能。使用简单方便,不用进行复杂的代码操作,只需简单的设置即可实现支付宝即时到账功能。 >[info] 支付宝插件地址:http://www.eacoo123.com/appstore_plugin/alipayWap ### 应用场景 1.手机端支付宝支付 ### 实现过程 1.安装支付宝插件,并在后台配置信息。 ![](https://box.kancloud.cn/6639e3b93e986a85b75990c3a3517b18_1744x1004.jpg) 2.在控制器中需要调用支付宝支付的位置添加代码: ~~~ /** * 支付宝 * @param string $out_trade_no 订单号,自己生成 * @param integer $total_fee 支付金额,以元为单位。$total_fee='100'代表100元 * @param string $subject 商品名称,不要使用充值、支付宝等字眼,会报错。 * @param string $body 商品描述 * @return [type] [description] */ public function pay($out_trade_no = '', $total_fee = 0, $subject = '',$body = '') { header('Content-type:text/html;charset=utf-8'); $openid = ''; $notify_url = request()->domain().'/alipayNotify'; $total_fee = 0.01; $parameter = [ "out_trade_no" => $out_trade_no, "subject" => $subject, "total_fee" => $total_fee, "body" => $body, "notify_url" => $notify_url, ]; $result = hook('alipay',$parameter,true); return $result; } ~~~ 3.异步通知代码如下: ~~~ /** * 支付宝支付异步通知 * @return [type] [description] * @author 心云间、凝听 <981248356@qq.com> */ public function notify() { $plugin_class = get_plugin_class('alipayWap'); if (!class_exists($plugin_class)) { echo 'fail'; exit; } $plugin_obj = new $plugin_class; $verify_result = $plugin_obj->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') { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 //如果有做过处理,不执行商户的业务程序 //注意: //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知 //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } else if ($_POST['trade_status'] == 'TRADE_SUCCESS') { //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //请务必判断请求时的total_fee、seller_id与通知时获取的total_fee、seller_id为一致的 //如果有做过处理,不执行商户的业务程序 //注意: //付款完成后,支付宝系统发送该交易状态通知 //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } //file_put_contents('./alipay_notify_data.txt',json_encode($_POST)); //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— echo "success"; //请不要修改或删除 } else { //验证失败 echo "fail"; //调试用,写文本函数记录程序运行情况是否正常 //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录"); } } ~~~ ## 最后 插件中附带demo,仅供参考