2个错误

今天来分析2个错误代码

这是一个回调的function,因为要支持到app 支付回调,咋一看 是没有问题的一段代码,先去检测md5加密的,不是 检测rsa2 加密的 回调,再不是 就去找app加密的校验,但是 这段代码 在app支付成功回调的时候 日志一直写不进去,我找了原因,后来直接访问一次,得到结果,一个类的重定义。原来在 第二行的require里面 已经包含了  AopSdk这个类,这时候它当然执行不成功,去掉以后 果然ok。


require_once("config.php");
require_once 'xxxx/service/AlipayTradeService.php';


$arr=$_POST;
$alipaySevice = new AlipayTradeService($config);
$alipaySevice->writeLog(var_export($_POST,true));

    if($_POST['sign_type'] == 'MD5') {
        $this->load->library("alipay_api",[ALIPAY_PARTNER_ID, ALIPAY_KEY]);
        $alipay_api = $this->alipay_api;

        if (true === $alipay_api->verify_notify()) {
            $result = true;
        }else{
            echo "fail";
            exit;
        }

    }else{
        $result = $alipaySevice->check($arr);
        
    }

   //新加的代码
if(!$result)
{
    //最后做一次检测 是否app支付
    
    require (BASE_PATH.'/xxxxx/ali_wap/AopSdk.php');

    $aop = new AopClient;
    $aop->alipayrsaPublicKey = $config['alipay_public_key'];
    $flag = $aop->rsaCheckV1($_POST, NULL, "RSA2");
    $result = $flag;

    sz_log(date("Ymd").'ali_notify_app_notify',json_encode($_POST));
}



案例二 在一个表单提交的时候,检查表单,序列化表格,另外将另外一个表单中的list遍历存入表单提交到后台,这段代码的问题在,当后台响应较慢,前台没有限制重复提交的时候,tmpForm会被多次添加,

解决方法也很简单,使用变量前先初始化,加一行 $("#batchJoinForm").empty();


        $(".joinEvent").submit(function () {

            var joinerName= $("#joinerName").val();
            joinerName=Trim(joinerName);
            if(joinerName.length<1)
            {
                $(".error_waring").html('请正确填写联系人');
                $(".error_waring").css("display",'block');
                return false;
            }else{
                $(".error_waring").html('');
                $(".error_waring").css("display",'none');
            }


            if($("#hasTicket").val()>0){
                if($(".item_ticket_checked").find('input').val()<1){
                    alert('选择票券');
                }
            }

            $("#add_number li").each(function () {
                var tmpForm = "<input name='"+$(this).find(".hiddenPhone").html()+"' value='"+$(this).find(".hiddenName").html()+"'>";
                $("#batchJoinForm").append(tmpForm);
            });


            $("#batchJoin").val($("#batchJoinForm").serialize());
//有票券的情况下
            console.log($(this).serialize());