为什么魔兽争霸进不去

域名百科 2025-06-18 23:15 浏览(0) 评论(0)
- N +

一、为什么魔兽争霸进不去

运行中输入regedit通过以下路径找到Blizzard Entertainment文件夹

HKEY_CURRENT_USER/Software/Blizzard Entertainment/Warcraft III

删除这个文件夹下的Warcraft III文件夹就行了。

因为你个是正版所以会有个BUG的。

问题2

魔兽有问题,重新下载个吧。

可以下的。  多特、

二、谁给我推荐个免费的杀毒软件

呵呵

我建议你使用avast!  我用了 3年之久了   一直很好··

希望楼主满意

给你一个 avast!最新的下载地址

 绝对安全···而且是免费一年的···

这是个简单介绍···来自捷克的Avast!,已有17年的历史,它在国外市场一直处于领先地位。Avast!的实时监控功能十分强大,它拥有七大防护模块:网络防火墙防护、标准的本地文件读取防护、网页防护、即时通讯软件防护、邮件收发防护、P2P软件防护。这么完善的防护系统,定能让你的系统练就一副金刚不坏之身!任意开启各项保护模块能够查杀流氓软件。

你好 楼主

我感觉没有最好的 杀毒软件 

只有是不适合自己···

三、微信的jsapi支付能整合到thinkphp吗

在demo文件夹中:<br>js_api_call.php:提供了微信jsapi的主要功能<br>log_.php:提供打印日志功能<br>notify_url.php:异步通知功能<br>notify_url.log:异步通知日志<br>qrcode.js:生成二维码js插件<br><br>接下来介绍下WxPayPubHelper文件夹下的文件:<br><br>cacert 文件夹是存放微信证书的(PS:具体我还没怎么用证书,虽然下载下来了,证书请在微信商户平台上下载)<br>SDKRuntimeException.php:这个就是处理异常的、<br>WxPay.pub.config.php:这个是做一些配置的,稍后会详细讲解<br>WxPayPubHelper.php:这个其实就是微信支付的工具类,对于初学者只要知道怎么用他里面的方法就够了<br><br>OK,了解了微信官方提供的文件,我们就可以开始整合到TP中了,废话不多说,这就开始!<br><br>step1:将demo中的WxPayPubHelper整个文件夹都复制到TP的Vendor目录下,像我这样:<br><br>step2:配置WxPay.pub.config.php文件:<br>这里的配置都有注释,如果还有不懂或者配置出现问题可以留言提问<br>同时我把微信的这个配置放到了TP的config中,这一步大家可以随意<br>&lt;?php<br>return array(<br>    //'配置项'=&gt;'配置值'<br>    define('WEB_HOST', '这是您的网站域名地址'),<br>    /*微信支付配置*/<br>    'WxPayConf_pub'=&gt;array(<br>        'APPID' =&gt; '您的APPID',<br>        'MCHID' =&gt; '您的商户ID',<br>        'KEY' =&gt; '商户秘钥',<br>        'APPSECRET' =&gt; '您的APPSECRET',<br>        'JS_API_CALL_URL' =&gt; WEB_HOST.'/index.php/Home/WxJsAPI/jsApiCall',<br>        'SSLCERT_PATH' =&gt; WEB_HOST.'/ThinkPHP/Library/Vendor/WxPayPubHelper/cacert/apiclient_cert.pem',<br>        'SSLKEY_PATH' =&gt; WEB_HOST.'/ThinkPHP/Library/Vendor/WxPayPubHelper/cacert/apiclient_key.pem',<br>        'NOTIFY_URL' =&gt;  WEB_HOST.'/index.php/Home/WxJsAPI/notify',<br>        'CURL_TIMEOUT' =&gt; 30<br>    )<br>);<br>复制代码<br>step3:将生成二维码的js放在Public目录下(这里目前用不到,在用扫码支付的情况才用到这个js),将日志文件放在Public目录下:像我这样:<br><br>step4:创建控制器:这里创建了一个WxJsAPIController的控制器,这里大家随便起名字,只要这个跟你们在公众平台上的设置相对应就可以(公众平台设置稍后介绍)<br><br>下面是控制器的代码部分了,首先初始化控制器,将WxPayPubHelper导入<br>/**<br>     * 初始化<br>     */<br>    public function _initialize()<br>    {<br>        //引入WxPayPubHelper<br>        vendor('WxPayPubHelper.WxPayPubHelper');<br>    }<br>复制代码<br>接下来是使用统一支付接口,获取prepay_id的方法:<br> public function jsApiCall()<br>    {<br>        //使用jsapi接口<br>        $jsApi = new \JsApi_pub();<br><br>        //=========步骤1:网页授权获取用户openid============<br>        //通过code获得openid<br>        if (!isset($_GET['code']))<br>        {<br>            //触发微信返回code码<br>            $url = $jsApi-&gt;createOauthUrlForCode(C('WxPayConf_pub.JS_API_CALL_URL'));<br>            Header(&quot;Location: $url&quot;);<br>        }else<br>        {<br>            //获取code码,以获取openid<br>            $code = $_GET['code'];<br>            $jsApi-&gt;setCode($code);<br>            $openid = $jsApi-&gt;getOpenId();<br>        }<br><br>        //=========步骤2:使用统一支付接口,获取prepay_id============<br>        //使用统一支付接口<br>        $unifiedOrder = new \UnifiedOrder_pub();<br><br>        //设置统一支付接口参数<br>        //设置必填参数<br>        //appid已填,商户无需重复填写<br>        //mch_id已填,商户无需重复填写<br>        //noncestr已填,商户无需重复填写<br>        //spbill_create_ip已填,商户无需重复填写<br>        //sign已填,商户无需重复填写<br>        $unifiedOrder-&gt;setParameter(&quot;openid&quot;,$openid);//商品描述<br>        $unifiedOrder-&gt;setParameter(&quot;body&quot;,&quot;贡献一分钱&quot;);//商品描述<br>        //自定义订单号,此处仅作举例<br>        $timeStamp = time();<br>        $out_trade_no = C('WxPayConf_pub.APPID').$timeStamp;<br>        $unifiedOrder-&gt;setParameter(&quot;out_trade_no&quot;,$out_trade_no);//商户订单号<br>        $unifiedOrder-&gt;setParameter(&quot;total_fee&quot;,&quot;1&quot;);//总金额<br>        $unifiedOrder-&gt;setParameter(&quot;notify_url&quot;,C('WxPayConf_pub.NOTIFY_URL'));//通知地址<br>        $unifiedOrder-&gt;setParameter(&quot;trade_type&quot;,&quot;JSAPI&quot;);//交易类型<br>        //非必填参数,商户可根据实际情况选填<br>        //$unifiedOrder-&gt;setParameter(&quot;sub_mch_id&quot;,&quot;XXXX&quot;);//子商户号<br>        //$unifiedOrder-&gt;setParameter(&quot;device_info&quot;,&quot;XXXX&quot;);//设备号<br>        //$unifiedOrder-&gt;setParameter(&quot;attach&quot;,&quot;XXXX&quot;);//附加数据<br>        //$unifiedOrder-&gt;setParameter(&quot;time_start&quot;,&quot;XXXX&quot;);//交易起始时间<br>        //$unifiedOrder-&gt;setParameter(&quot;time_expire&quot;,&quot;XXXX&quot;);//交易结束时间<br>        //$unifiedOrder-&gt;setParameter(&quot;goods_tag&quot;,&quot;XXXX&quot;);//商品标记<br>        //$unifiedOrder-&gt;setParameter(&quot;openid&quot;,&quot;XXXX&quot;);//用户标识<br>        //$unifiedOrder-&gt;setParameter(&quot;product_id&quot;,&quot;XXXX&quot;);//商品ID<br><br>        $prepay_id = $unifiedOrder-&gt;getPrepayId();<br>        //=========步骤3:使用jsapi调起支付============<br>        $jsApi-&gt;setPrepayId($prepay_id);<br><br>        $jsApiParameters = $jsApi-&gt;getParameters();<br><br>        $this-&gt;assign('jsApiParameters',$jsApiParameters);<br>        $this-&gt;display('pay');<br>        //echo $jsApiParameters;<br>    }<br>复制代码<br>这里都是复制微信demo的,改改名字罢了,没什么其他的<br><br>接下来是异步通知方法,也是复制的微信demo上的<br> public function notify()<br>    {<br>        //使用通用通知接口<br>        $notify = new \Notify_pub();<br><br>        //存储微信的回调<br>        $xml = $GLOBALS['HTTP_RAW_POST_DATA'];<br>        $notify-&gt;saveData($xml);<br><br>        //验证签名,并回应微信。<br>        //对后台通知交互时,如果微信收到商户的应答不是成功或超时,微信认为通知失败,<br>        //微信会通过一定的策略(如30分钟共8次)定期重新发起通知,<br>        //尽可能提高通知的成功率,但微信不保证通知最终能成功。<br>        if($notify-&gt;checkSign() == FALSE){<br>            $notify-&gt;setReturnParameter(&quot;return_code&quot;,&quot;FAIL&quot;);//返回状态码<br>            $notify-&gt;setReturnParameter(&quot;return_msg&quot;,&quot;签名失败&quot;);//返回信息<br>        }else{<br>            $notify-&gt;setReturnParameter(&quot;return_code&quot;,&quot;SUCCESS&quot;);//设置返回码<br>        }<br>        $returnXml = $notify-&gt;returnXml();<br>        echo $returnXml;<br><br>        //==商户根据实际情况设置相应的处理流程,此处仅作举例=======<br><br>        //以log文件形式记录回调信息<br>//         $log_ = new Log_();<br>        $log_name= __ROOT__.&quot;/Public/notify_url.log&quot;;//log文件路径<br><br>        log_result($log_name,&quot;【接收到的notify通知】:\n&quot;.$xml.&quot;\n&quot;);<br><br>        if($notify-&gt;checkSign() == TRUE)<br>        {<br>            if ($notify-&gt;data[&quot;return_code&quot;] == &quot;FAIL&quot;) {<br>                //此处应该更新一下订单状态,商户自行增删操作<br>                log_result($log_name,&quot;【通信出错】:\n&quot;.$xml.&quot;\n&quot;);<br>            }<br>            elseif($notify-&gt;data[&quot;result_code&quot;] == &quot;FAIL&quot;){<br>                //此处应该更新一下订单状态,商户自行增删操作<br>                log_result($log_name,&quot;【业务出错】:\n&quot;.$xml.&quot;\n&quot;);<br>            }<br>            else{<br>                //此处应该更新一下订单状态,商户自行增删操作<br>                log_result($log_name,&quot;【支付成功】:\n&quot;.$xml.&quot;\n&quot;);<br>            }<br><br>            //商户自行增加处理流程,<br>            //例如:更新订单状态<br>            //例如:数据库操作<br>            //例如:推送支付完成信息<br>        }<br>    }<br>复制代码<br>这里我把记录日志的类写到了function.php中:<br>function  log_result($file,$word)<br>{<br>    $fp = fopen($file,&quot;a&quot;);<br>    flock($fp, LOCK_EX) ;<br>    fwrite($fp,&quot;执行日期:&quot;.strftime(&quot;%Y-%m-%d-%H:%M:%S&quot;,time()).&quot;\n&quot;.$word.&quot;\n\n&quot;);<br>    flock($fp, LOCK_UN);<br>    fclose($fp);<br>}<br>复制代码<br>好了 其实控制器的方法就这么多,没什么其他的了,下面看一下页面,直接上代码吧:<br>&lt;!DOCTYPE html&gt;<br>&lt;html&gt;<br>&lt;head&gt;<br>    &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html;charset=utf-8&quot;/&gt;<br>    &lt;title&gt;微信安全支付&lt;/title&gt;<br><br>    &lt;script type=&quot;text/javascript&quot;&gt;<br><br>        //调用微信JS api 支付<br>        function jsApiCall()<br>        {<br>            WeixinJSBridge.invoke(<br>                'getBrandWCPayRequest',<br>                &lt;?php echo $jsApiParameters; ?&gt;,<br>                function(res){<br>                    WeixinJSBridge.log(res.err_msg);<br>                    alert(res.err_code+res.err_desc+res.err_msg);<br>                    //alert(&quot;{$jsApiParameters}&quot;);<br>                }<br>            );<br>        }<br><br>        function callpay()<br>        {<br>            if (typeof WeixinJSBridge == &quot;undefined&quot;){<br>                if( document.addEventListener ){<br>                    document.addEventListener('WeixinJSBridgeReady', jsApiCall, false);<br>                }else if (document.attachEvent){<br>                    document.attachEvent('WeixinJSBridgeReady', jsApiCall); <br>                    document.attachEvent('onWeixinJSBridgeReady', jsApiCall);<br>                }<br>            }else{<br>                jsApiCall();<br>            }<br>        }<br>    &lt;/script&gt;<br>&lt;/head&gt;<br>&lt;body&gt;<br>    &lt;/br&gt;&lt;/br&gt;&lt;/br&gt;&lt;/br&gt;<br>    &lt;div align=&quot;center&quot;&gt;<br>        &lt;button style=&quot;width:210px; height:30px; background-color:#FE6714; border:0px #FE6714 solid; cursor: pointer;  color:white;  font-size:16px;&quot; type=&quot;button&quot; onclick=&quot;callpay()&quot; &gt;贡献一下&lt;/button&gt;<br>    &lt;/div&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;<br>复制代码<br>无须改动什么,直接复制就好<br><br>接下来是微信公众平台上的配置了,这里我遇到过问题,如果有在这里遇到问题的同学请留言,比如出现了access_deined或者access_notallowed等问题,这都可能是因为这里配置不对。