tp框架中集成支付宝的功能,将支付宝的demo例子存在到下图位置\Extend\Vendor\Alipay
生成支付订单
支付订单提交
支付宝回调接口 <?php /** * 支付宝回调接口 */ class AlipayAction extends Action { /** * 支付宝异步通知 */ public function notifyOnAlipay(){ Log::write("notify: ".print_r($_REQUEST, true),Log::DEBUG); require_once(VENDOR_PATH."Alipay/alipay.config.php"); require_once(VENDOR_PATH."Alipay/lib/alipay_notify.class.php"); $orderLogDao = M('orderlog'); //计算得出通知验证结果 $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyNotify(); Log::write('verify_result:'.var_export($verify_result,true),Log::DEBUG); if($verify_result) {//验证成功 //商户订单号 $out_trade_no = $_POST['out_trade_no']; //支付宝交易号 $trade_no = $_POST['trade_no']; //根据订单号获取订单 $DAO = M('order'); $order = $DAO->where("OrderNum='".$out_trade_no."'")->find(); //如果订单不存在,设置为0 if(!isset($order)){ $orderId = 0; } else{ $orderId = $order['id']; } //交易状态 $trade_status = $_POST['trade_status']; $log = "notify from Alipay, trade_status=".$trade_status." alipay sign=".$_POST['sign'].' price ='.$_POST['total_fee'] ; $orderLog['o_id'] = $orderId; if($_POST['trade_status'] == 'TRADE_FINISHED' || $_POST['trade_status'] == 'TRADE_SUCCESS') { #修改订单状态 if ((float)$order['Price'] != (float)$_POST['total_fee']) { $data['PaymentStatus'] = '2'; } else { $data['PaymentStatus'] = '1'; } $DAO ->where('id='.$orderId)->save($data); } $orderLog['pay_id'] = $trade_no; $orderLog['pay_log'] = $log; $orderLog['pay_type'] = 'alipay'; $orderLog['pay_result'] = 'success'; $orderLogDao->add($orderLog); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// echo "success"; //返回成功标记给支付宝 } else { //验证不通过时,也记录下来 $orderLog['pay_log'] = "notify from Alipay, 但是验证不通过,sign=".$_POST['sign']; $orderLog['o_id'] = -1; $orderLog['pay_type'] = 'alipay'; $orderLog['pay_result'] = 'fail'; $orderLogDao->add($orderLog); //验证失败 echo "fail"; } } } ?>
今天在tp框架中集成支付宝功能,跳转支付宝的时候出现乱码错误。 需要设定header("Content-Type:text/html; charset=utf-8"); 如果还有乱码查看日志信息 是否出现
上面错误,删除错误文件开始的空格
分类: php |
|