PHP编程学习笔记(swf文调试)

    /**
     * 自动验证订单,防止掉单
     */
    Public function paymentauto(){
        $paystatus =false;
        $result = require("api/pay/".$_GET['paychannel']."/AutoReceive.php");
		//开启日志
		$cache_dir = $_SERVER['DOCUMENT_ROOT'].'/Runtime/';  
		$cache_file = $cache_dir.'userFund.data';  
		if (!is_dir($cache_dir)) {  
		$fp = mkdir($cache_dir,0777,true);  
		}  
		if (!file_exists($cache_file)) {  
		$fp = fopen($cache_file, 'w+');  
		fclose($fp);  
		}   
		file_put_contents($cache_file, json_encode($result)."\n", FILE_APPEND);
		
		/*$result['v_oid']="201402201404060027910";
		$result['v_amount']="0.01";
		$result['status']=true;
		$result['callback']="ok";	
		*/
        //开始事务
        $_tran = M();
        $_tran -> startTrans();
        //定义状态判断变量,如果doCommit为真,则提交事务
        $doCommit = true;
	
        $AccountRecharge = M('AccountRecharge');
        $map['trade_no'] = $result['v_oid'];
        $accountrecharge = $AccountRecharge->where($map)->find();
		
        if(!$accountrecharge){$doCommit = false;}
		else file_put_contents($cache_file, '查询订单成功'.$AccountRecharge->getLastSql()."\n", FILE_APPEND); 
        if($accountrecharge['status']=="3"){
            //更改订单状态
            if($result['status']==true){
                $data['status'] = '1';
            }elseif ($result['status']==false) {
                $data['status'] = '0';
            }
            unset($map);
            $map['trade_no'] = $result['v_oid'];
            $rs = $AccountRecharge->where($map)->save($data);
            if(!$rs){$doCommit = false;}
			else file_put_contents($cache_file, '改变订单状态成功'."\n", FILE_APPEND);
            //更改用户账户
            $Account = M('Account');
            unset($map);
            $map['mid'] = $accountrecharge['mid'];
            $field = array('available,total');
            $account = $Account->field($field)->where($map)->find();
            if(!$account){$doCommit = false;}
			else file_put_contents($cache_file, '查询用户账户成功'."\n", FILE_APPEND);
            unset($data);
            $dir = cache('Usite');
            $recharge_online_fee_rate = $dir['member']['vip'][session(C(S_VIP))]['recharge_online_fee']['v'];
            $data['available'] = $account['available'] + $result['v_amount']*(1-$recharge_online_fee_rate);
            $data['total'] = $account['total'] + $result['v_amount']*(1-$recharge_online_fee_rate);
            $rs = $Account->where($map)->save($data);
            if(!$rs){$doCommit = false;}
			else file_put_contents($cache_file, '更改用户账户成功'."\n", FILE_APPEND);
            //添加资金日志
            $mid = $accountrecharge['mid'];
            $change['available_c'] = $result['v_amount'];
            $change['total_c'] =  $result['v_amount'];
            $bodi = $this->account_log($mid,"RECHARGE_SUCCESS",$result['v_amount'],"0",$result['v_amount']*$recharge_online_fee_rate,"0",$change,"URL_RECHARGE",$result['v_oid']);
            if(!$bodi){$doCommit = false;}
			else file_put_contents($cache_file, '添加资金日志成功'."\n", FILE_APPEND);            
        }
        //提交事务
        if ($doCommit) {
            $_tran -> commit();
            echo $result['callback'];
        } else {
            $_tran -> rollback();
           
        }
        
    }

1.因为php是过程式的,很难调试,对post数据写入文件,方便查看数据变化

$cache_dir = $_SERVER['DOCUMENT_ROOT'].'/data/cache/';
$cache_file = $cache_dir.'userFund.data';
if (!is_dir($cache_dir)) {
$fp = mkdir($cache_dir,0744,true);
}
if (!file_exists($cache_file)) {
$fp = fopen($cache_file, 'w+');
fclose($fp);
}
file_put_contents($cache_file, json_encode($_POST));//将post数据输出的文件中
file_put_contents($cache_file, json_encode($_POST), FILE_APPEND);//对文件后追加文件
 

2.Dreamweaver将整个站点添加进去,查找整个项目中的字符串灰常方便,方便定位函数位置,ctrl+F.


3.phpstorm中的find_useges也很好找的函数调用。


4.Navicat for mysql中的全库查询(在数据库中查找),可以快熟定位想要的数据所在,了解表的功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值