php银联网页支付实现方法

前端之家收集整理的这篇文章主要介绍了php银联网页支付实现方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了PHP银联网页支付实现方法分享给大家供大家参考。具体分析如下: 这里介绍的银联WAP支付功能,仅限消费功能

1. PHP代码如下:

代码如下:
PHP namespace common\services; class UnionPay { /** * 支付配置 * @var array */ public $config = []; /** * 支付参数,提交到银联对应接口的所有参数 * @var array */ public $params = []; /** * 自动提交表单模板 * @var string */ private $formTemplate = <<<'HTML' <Meta charset="utf-8"> 支付@H_<a href="/tag/301/" target="_blank" class="keywords">301</a>_9@ </head> <body> <div style="text-align:center"><a href="/tag/tiaozhuan/" target="_blank" class="keywords">跳转</a>中...</div> <form id="pay_form" name="pay_form" action="%s" method="post"> %s </form> <script type="text/javascript"> document.onreadystatechange = function(){ if(document.readyState == "complete") { document.pay_form.submit(); } }; </script> </body> </html> HTML; /** * 构建<a href="/tag/zidong/" target="_blank" class="keywords">自动</a>提交HTML表单 * @return string */ public function createPostForm() { $this->params['signature'] = $this->sign(); $input = ''; foreach($this->params as $key => $item) { $input .= "\t\t<input type=\"hidden\" name=\"{$key}\" value=\"{$item}\">\n"; } return sprintf($this->formTemplate,$this->config['frontUrl'],$input); } /** * 验证签名 * 验签规则: * 除signature域之外的所有项目都必须参加验签 * 根据key值按照字典排序,然后用&拼接key=value形式待验签字符串; * 然后对待验签字符串使用sha1算法做<a href="/tag/zhaiyao/" target="_blank" class="keywords">摘要</a>; * 用银联公钥对<a href="/tag/zhaiyao/" target="_blank" class="keywords">摘要</a>和签名信息做验签操作 * * @throws \Exception * @return bool */ public function verifySign() { $publicKey = $this->getVerifyPublicKey(); $verifyArr = $this->filterBeforSign(); ksort($verifyArr); $verifyStr = $this->arrayToString($verifyArr); $verifySha1 = sha1($verifyStr); $signature = base64_decode($this->params['signature']); $result = openssl_verify($verifySha1,$signature,$publicKey); if($result === -1) { throw new \Exception('Verify Error:'.openssl_error_string()); } return $result === 1 ? true : false; } /** * 取签名证书ID(SN) * @return string */ public function getSignCertId() { return $this->getCertIdPfx($this->config['signCertPath']); } /** * 签名数据 * 签名规则: * 除signature域之外的所有项目都必须参加签名 * 根据key值按照字典排序,然后用&拼接key=value形式待签名字符串; * 然后对待签名字符串使用sha1算法做<a href="/tag/zhaiyao/" target="_blank" class="keywords">摘要</a>; * 用银联颁发的私钥对<a href="/tag/zhaiyao/" target="_blank" class="keywords">摘要</a>做RSA签名操作 * 签名结果用base64编码后放在signature域 * * @throws \InvalidArgumentException * @return multitype|string */ private function sign() { $signData = $this->filterBeforSign(); ksort($signData); $signQueryString = $this->arrayToString($signData); if($this->params['signMethod'] == 01) { //签名之前先用sha1处理 //echo $signQueryString;exit; $datasha1 = sha1($signQueryString); $signed = $this->rsaSign($datasha1); } else { throw new \InvalidArgumentException('Nonsupport Sign Method'); } return $signed; } /** * 数组转换成字符串 * @param array $arr * @return string */ private function arrayToString($arr) { $str = ''; foreach($arr as $key => $value) { $str .= $key.'='.$value.'&'; } return substr($str,strlen($str) - 1); } /** * 过滤待签名数据 * signature域不参加签名 * * @return array */ private function filterBeforSign() { $tmp = $this->params; unset($tmp['signature']); return $tmp; } /** * RSA签名数据,并base64编码 * @param string $data 待签名数据 * @return mixed */ private function rsaSign($data) { $privatekey = $this->getSignPrivateKey(); $result = openssl_sign($data,$privatekey); if($result) { return base64_encode($signature); } return false; } /** * 取.pfx格式证书ID(SN) * @return string */ private function getCertIdPfx($path) { $pkcs12certdata = file_get_contents($path); openssl_pkcs12_read($pkcs12certdata,$certs,$this->config['signCertPwd']); $x509data = $certs['cert']; openssl_x509_read($x509data); $certdata = openssl_x509_parse($x509data); return $certdata['serialNumber']; } /** * 取.cer格式证书ID(SN) * @return string */ private function getCertIdCer($path) { $x509data = file_get_contents($path); openssl_x509_read($x509data); $certdata = openssl_x509_parse($x509data); return $certdata['serialNumber']; } /** * 取签名证书私钥 * @return resource */ private function getSignPrivateKey() { $pkcs12 = file_get_contents($this->config['signCertPath']); openssl_pkcs12_read($pkcs12,$this->config['signCertPwd']); return $certs['pkey']; } /** * 取验证签名证书 * @throws \InvalidArgumentException * @return string */ private function getVerifyPublicKey() { //先判断配置的验签证书是否银联返回指定的证书是否一致 if($this->getCertIdCer($this->config['verifyCertPath']) != $this->params['certId']) { throw new \InvalidArgumentException('Verify sign cert is incorrect'); } return file_get_contents($this->config['verifyCertPath']); } }</div> 2. 配置示例 <div class="codetitle"><span><a style="CURSOR: pointer" data="40398" class="copybut" id="copybut40398" onclick="doCopy('code40398')"><U></U></a> <a href="/tag/daima/" target="_blank" class="keywords">代码</a>如下:</div><div class="codebody" id="code40398">//银联支付设置 'unionpay' => [ //测试环境参数 'frontUrl' => 'https://101.231.204.80:5000/gateway/api/frontTransReq.do',//<a href="/tag/qiantai/" target="_blank" class="keywords">前台</a>交易请求地址 //'singleQueryUrl' => 'https://101.231.204.80:5000/gateway/api/queryTrans.do',//单笔<a href="/tag/chaxun/" target="_blank" class="keywords">查询</a>请求地址 'signCertPath' => __DIR__.'/../keys/unionpay/test/sign/700000000000001_acp.pfx',//签名证书路径 'signCertPwd' => '000000',//签名证书密码 'verifyCertPath' => __DIR__.'/../keys/unionpay/test/verify/verify_sign_acp.cer',//验签证书路径 'merId' => 'xxxxxxx', //正式环境参数 //'frontUrl' => 'https://101.231.204.80:5000/gateway/api/frontTransReq.do',//单笔<a href="/tag/chaxun/" target="_blank" class="keywords">查询</a>请求地址 //'signCertPath' => __DIR__.'/../keys/unionpay/test/sign/PM_700000000000001_acp.pfx',//签名证书路径 //'signCertPwd' => '000000',//签名证书密码 //'verifyCertPath' => __DIR__.'/../keys/unionpay/test/verify/verify_sign_acp.cer',//验签证书路径 //'merId' => 'xxxxxxxxx',//商户<a href="/tag/daima/" target="_blank" class="keywords">代码</a> ],</div> 3. 支付示例 <div class="codetitle"><span><a style="CURSOR: pointer" data="18372" class="copybut" id="copybut18372" onclick="doCopy('code18372')"><U></U></a> <a href="/tag/daima/" target="_blank" class="keywords">代码</a>如下:</div><div class="codebody" id="code18372">$unionPay = new UnionPay(); $unionPay->config = Yii::$app->params['unionpay'];//上面的配置 $unionPay->params = [ 'version' => '5.0.0',//版本号 'encoding' => 'UTF-8',//编码方式 'certId' => $unionPay->getSignCertId(),//证书ID 'signature' => '',//签名 'signMethod' => '01',//签名方式 'txnType' => '01',//交易类型 'txnSubType' => '01',//交易子类 'bizType' => '000201',//产品类型 'channelType' => '08',//渠道类型 'frontUrl' => Url::toRoute(['payment/unionpayreturn'],true),//<a href="/tag/qiantai/" target="_blank" class="keywords">前台</a><a href="/tag/tongzhi/" target="_blank" class="keywords">通知</a>地址 'backUrl' => Url::toRoute(['payment/unionpaynotify'],//<a href="/tag/houtai/" target="_blank" class="keywords">后台</a><a href="/tag/tongzhi/" target="_blank" class="keywords">通知</a>地址 //'frontFailUrl' => Url::toRoute(['payment/unionpayfail'],//失败交易<a href="/tag/qiantai/" target="_blank" class="keywords">前台</a><a href="/tag/tiaozhuan/" target="_blank" class="keywords">跳转</a>地址 'accessType' => '0',//接入类型 'merId' => Yii::$app->params['unionpay']['merId'],//商户<a href="/tag/daima/" target="_blank" class="keywords">代码</a> 'orderId' => $orderNo,//商户订单号 'txnTime' => date('YmdHis'),//订单发送时间 'txnAmt' => $sum * 100,//交易金额,单位分 'currencyCode' => '156',//交易币种 ]; $html = $unionPay->createPostForm();</div> 4. 异步<a href="/tag/tongzhi/" target="_blank" class="keywords">通知</a>示例 <div class="codetitle"><span><a style="CURSOR: pointer" data="57893" class="copybut" id="copybut57893" onclick="doCopy('code57893')"><U></U></a> <a href="/tag/daima/" target="_blank" class="keywords">代码</a>如下:</div><div class="codebody" id="code57893">$unionPay = new UnionPay(); $unionPay->config = Yii::$app->params['unionpay']; $unionPay->params = Yii::$app->request->post(); //银联提交的参数 if(empty($unionPay->params)) { return 'fail!'; } if($unionPay->verifySign() && $unionPay->params['respCode'] == '00') { //....... }</div></p> <p>希望本文所述对大家的<a href="/tag/PHP/" target="_blank" class="keywords">PHP</a>程序设计有所帮助。</p></div> <div class="topcard-tags"><a href="/tag/phpp/" class="tag_link" target="_blank">php</a><a href="/tag/zhifu/" class="tag_link" target="_blank">支付</a><a href="/tag/zhifup/" class="tag_link" target="_blank">支付</a><a href="/tag/pzhifu/" class="tag_link" target="_blank">支付</a><a href="/tag/fangfa/" class="tag_link" target="_blank">方法</a><a href="/tag/fangfap/" class="tag_link" target="_blank">方法</a><a href="/tag/pfangfa/" class="tag_link" target="_blank">方法</a><a href="/tag/wangye/" class="tag_link" target="_blank">网页</a><a href="/tag/wangyep/" class="tag_link" target="_blank">网页</a><a href="/tag/yinlian/" class="tag_link" target="_blank">银联</a></div> <ul class="list-group"> <li class="list-group-item"><a href="/php/22541.html" title="php随机抽奖实例分析">上一篇:php随机抽奖实例分析</a><a href="/php/22539.html" title="php支付宝手机网页支付类实例" class="text-muted pull-right">下一篇:php支付宝手机网页支付类实例</a> </li> </ul> </div> </div> </div> <!-- row end --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-4605373693034661" data-ad-slot="9144498553"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> </div> </div> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <div class="title"><h1>猜你在找的PHP相关文章</h1></div> <div class="list_con"> <a href="/php/997740.html" title="Hessian通讯协议【附PHP源代码】"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/02-22/19/361df348b2385424b031f281e9807f35.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">Hessian通讯协议【附PHP源代码】</div> <div class="summary">Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Pyt...</div> <time class="summary">作者:前端之家 时间:2021-02-22</time> </a> </div> <div class="list_con"> <a href="/php/997739.html" title="初识Mongodb总结"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/02-22/19/b4d39ef6acdce4fc3ef2fe713961a4c2.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">初识Mongodb总结</div> <div class="summary">初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习...</div> <time class="summary">作者:前端之家 时间:2021-02-22</time> </a> </div> <div class="list_con"> <a href="/php/997738.html" title="初识Mongodb之[CURD]-PHP版"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/02-22/19/d009a8111c246e74506457f4b9a3356b.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">初识Mongodb之[CURD]-PHP版</div> <div class="summary">边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看...</div> <time class="summary">作者:前端之家 时间:2021-02-22</time> </a> </div> <div class="list_con"> <a href="/php/997665.html" title="php学习日志 - echo&print"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/02-21/08/daa4210b68d9838740e9ea77a21307fa.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">php学习日志 - echo&print</div> <div class="summary">在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与pri...</div> <time class="summary">作者:前端之家 时间:2021-02-21</time> </a> </div> <div class="list_con"> <a href="/php/997664.html" title="The mbstring extension is missing. Please check your PHP configuration错误及解决方法"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/02-21/08/eb187c62ac0c80d6e2af301e5b85d7cf.jpg" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">The mbstring extension is missing. Please check your PHP configuration错误及解决方法</div> <div class="summary">在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The m...</div> <time class="summary">作者:前端之家 时间:2021-02-21</time> </a> </div> <div style="border-bottom: 1px solid #f4f4f4;margin-top:20px;"> <ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-fr-2o+fp-dx-wx" data-ad-client="ca-pub-4605373693034661" data-ad-slot="4561116489"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div><div class="list_con"> <a href="/php/997662.html" title="解决Windows Live Writer错误:WindowsLive.Writer.CoreServices.HttpRequestHelper的类型初始值设定发生异常"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/02-21/08/3dba7c0e337113c18e0d271e31375f92.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">解决Windows Live Writer错误:WindowsLive.Writer.CoreServices.HttpRequestHelper的类型初始值设定发生异常</div> <div class="summary">以前用Windows Live Writer写日志都好好的,前几天用写完日志,点击发布,突然弹出意外错误...</div> <time class="summary">作者:前端之家 时间:2021-02-21</time> </a> </div> <div class="list_con"> <a href="/php/997491.html" title="在PHP项目中使用Standford Moss代码查重系统"><div class="title">在PHP项目中使用Standford Moss代码查重系统</div> <div class="summary">Standford Moss 系统是斯坦福大学大名鼎鼎的代码查重系统,它可以查出哪些同学提交的代码是...</div> <time class="summary">作者:前端之家 时间:2021-02-18</time> </a> </div> <div class="list_con"> <a href="/php/997490.html" title="Windows下PHP安全环境的搭建"><img class="lazy" src="/images/np.jpg" data-original="/res/2021/02-18/10/ae3043a3f014e5fde5c29d0449149db0.png" title="" width="160" height="90" style="float:right;margin-left:30px;display:none;" /><div class="title">Windows下PHP安全环境的搭建</div> <div class="summary">笔者一直在Windows环境下搭建PHP的运行环境,大大小小的运行环境用过不少,从开始的WAMP到...</div> <time class="summary">作者:前端之家 时间:2021-02-18</time> </a> </div> <div class="list_con"> <a href="/php/997489.html" title="ThinkPHP5作业管理系统中处理学生未交作业与已交作业信息"><div class="title">ThinkPHP5作业管理系统中处理学生未交作业与已交作业信息</div> <div class="summary">在作业管理系统中,学生登陆到个人中心后可以通过左侧的菜单查看自己已经提交的作业和未提...</div> <time class="summary">作者:前端之家 时间:2021-02-18</time> </a> </div> <div class="list_con"> <a href="/php/997488.html" title="ThinkPHP5项目目录规划实践"><div class="title">ThinkPHP5项目目录规划实践</div> <div class="summary">ThinkPHP5安装后(或者下载后的压缩文件解压后)可以看到下面的目录结构: 一般的信息管理...</div> <time class="summary">作者:前端之家 时间:2021-02-18</time> </a> </div> <div style="border-bottom: 1px solid #f4f4f4;margin-top:20px;"> <ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-fr-2o+fp-dx-wx" data-ad-client="ca-pub-4605373693034661" data-ad-slot="4561116489"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div></div> </div> </div> </div> <!-- left end--> <!-- right --> <div class="col-sm-12 col-md-12 col-lg-3"> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">编程分类</label> <div class="cate mt-20"><a href="/php/" title="PHP">PHP</a><a href="/java/" title="Java">Java</a><a href="/javase/" title="Java SE">Java SE</a><a href="/python/" title="Python">Python</a><a href="/csharp/" title="C#">C#</a><a href="/c/" title="C&C++">C&C++</a><a href="/ruby/" title="Ruby">Ruby</a><a href="/vb/" title="VB">VB</a><a href="/aspnet/" title="asp.Net">asp.Net</a><a href="/go/" title="Go">Go</a><a href="/Perl/" title="Perl">Perl</a><a href="/netty/" title="netty">netty</a><a href="/django/" title="Django">Django</a><a href="/delphi/" title="Delphi">Delphi</a><a href="/jsp/" title="Jsp">Jsp</a><a href="/netcore/" title=".NET Core">.NET Core</a><a href="/spring/" title="Spring">Spring</a><a href="/flask/" title="Flask">Flask</a><a href="/springboot/" title="Springboot">Springboot</a><a href="/springmvc/" title="SpringMVC">SpringMVC</a><a href="/lua/" title="Lua">Lua</a><a href="/laravel/" title="Laravel">Laravel</a><a href="/mybatis/" title="Mybatis">Mybatis</a><a href="/asp/" title="Asp">Asp</a><a href="/groovy/" title="Groovy">Groovy</a><a href="/thinkphp/" title="ThinkPHP">ThinkPHP</a><a href="/yii/" title="Yii">Yii</a><a href="/swoole/" title="swoole">swoole</a><div class="clearfix"></div> </div> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <!-- f2er-rightads --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4605373693034661" data-ad-slot="7756441254" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">最新文章</label> <ul class="n-list"><li><a href="/php/997740.html" title="Hessian通讯协议【附PHP源代码】" target="_blank">• Hessian通讯协议【附PHP源</a></li> <li><a href="/php/997739.html" title="初识Mongodb总结" target="_blank">• 初识Mongodb总结</a></li> <li><a href="/php/997738.html" title="初识Mongodb之[CURD]-PHP版" target="_blank">• 初识Mongodb之[CURD]-PHP版</a></li> <li><a href="/php/997665.html" title="php学习日志 - echo&print" target="_blank">• php学习日志 - echo&p</a></li> <li><a href="/php/997664.html" title="The mbstring extension is missing. Please check your PHP configuration错误及解决方法" target="_blank">• The mbstring extension i</a></li> <li><a href="/php/997663.html" title="php学习日志 - php变量" target="_blank">• php学习日志 - php变量</a></li> <li><a href="/php/997662.html" title="解决Windows Live Writer错误:WindowsLive.Writer.CoreServices.HttpRequestHelper的类型初始值设定发生异常" target="_blank">• 解决Windows Live Writer错</a></li> <li><a href="/php/997491.html" title="在PHP项目中使用Standford Moss代码查重系统" target="_blank">• 在PHP项目中使用Standford</a></li> <li><a href="/php/997490.html" title="Windows下PHP安全环境的搭建" target="_blank">• Windows下PHP安全环境的搭</a></li> <li><a href="/php/997489.html" title="ThinkPHP5作业管理系统中处理学生未交作业与已交作业信息" target="_blank">• ThinkPHP5作业管理系统中处</a></li> </ul> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <label class="main-content-label ">热门标签 <span class="pull-right tx-12"> <a href="/all" target="_blank">更多 ►</a></span> </label> <div class="topcard-tags"><a href="/tag/wenjianshijian/" title="文件时间" target="_blank">文件时间</a><a href="/tag/pythonm/" title="pythonm" target="_blank">pythonm</a><a href="/tag/xiangdengxing/" title="相等性" target="_blank">相等性</a><a href="/tag/PHPWarning/" title="PHP Warning" target="_blank">PHP Warning</a><a href="/tag/shijianwenti/" title="时间问题" target="_blank">时间问题</a><a href="/tag/wentijiejue/" title="问题解决" target="_blank">问题解决</a><a href="/tag/pcntlsignal/" title="pcntl_signal()" target="_blank">pcntl_signal</a><a href="/tag/caiyangdian/" title="采样点" target="_blank">采样点</a><a href="/tag/wavmokuai/" title="wav模块" target="_blank">wav模块</a><a href="/tag/dongtaiwenben/" title="动态文本" target="_blank">动态文本</a><a href="/tag/diaoyongpinlvxianzhi/" title="调用频率限制" target="_blank">调用频率限制</a><a href="/tag/duiwaibaolu/" title="对外暴露" target="_blank">对外暴露</a><a href="/tag/duogefangwenqingqiu/" title="多个访问请求" target="_blank">多个访问请求</a><a href="/tag/gengxinshujubiao/" title="更新数据表" target="_blank">更新数据表</a><a href="/tag/moxingjiegou/" title="模型结构" target="_blank">模型结构</a><a href="/tag/typefangfa/" title="type()方法" target="_blank">type()方法</a><a href="/tag/bijiaosudu/" title="比较速度" target="_blank">比较速度</a><a href="/tag/shouxieti/" title="手写体" target="_blank">手写体</a><a href="/tag/sobelsuanzi/" title="sobel算子" target="_blank">sobel算子</a><a href="/tag/baocunmoxing/" title="保存模型" target="_blank">保存模型</a><a href="/tag/Imagelei/" title="Image类" target="_blank">Image类</a><a href="/tag/nnConv2d/" title="nn.Conv2d" target="_blank">nn.Conv2d</a><a href="/tag/pytorch10/" title="pytorch1.0" target="_blank">pytorch1.0</a><a href="/tag/kaggle/" title="kaggle" target="_blank">kaggle</a><a href="/tag/DCGAN/" title="DCGAN" target="_blank">DCGAN</a><a href="/tag/jiaobingbi/" title="交并比" target="_blank">交并比</a><a href="/tag/rangeyongfa/" title="range()用法" target="_blank">range()用法</a><a href="/tag/dayinmoxing/" title="打印模型" target="_blank">打印模型</a><a href="/tag/fanjuanji/" title="反卷积" target="_blank">反卷积</a><a href="/tag/juanji/" title="卷积" target="_blank">卷积</a></div> </div> </div> </div> <!-- row end --> <!-- row --> <div class="row row-sm"> <div class="col-sm-12 col-md-12 col-lg-12"> <div class="card"> <!-- f2er-rightads --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4605373693034661" data-ad-slot="7756441254" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> <!-- row end --> </div> <!-- right end --> </div> </div> <footer id="footer"> <div class="container"> <div class="row hidden-xs"> <dl class="col-sm-6 site-link"> <dt>最近更新</dt><dd><a href="/win11/1005328.html" title="小米手机重装系统价格多少?专业维修服务详解" target="_blank">· 小米手机重装系统价格多少?专业维修服务详解</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005327.html" title="手把手教你重装电脑系统,让你的电脑焕然一新!" target="_blank">· 手把手教你重装电脑系统,让你的电脑焕然一新!</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005326.html" title="教你一步步重装XP系统,让你的电脑重获新生" target="_blank">· 教你一步步重装XP系统,让你的电脑重获新生</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005325.html" title="从备份到上网:一步步教你重装电脑系统" target="_blank">· 从备份到上网:一步步教你重装电脑系统</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005324.html" title="Sony笔记本电脑一键重装系统详细图文教程" target="_blank">· Sony笔记本电脑一键重装系统详细图文教程</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005323.html" title="Lenovo笔记本重装系统超详细教程,小白也能轻松上手" target="_blank">· Lenovo笔记本重装系统超详细教程,小白也能轻松...</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005322.html" title="联想笔记本一键重装Win10系统详细教程" target="_blank">· 联想笔记本一键重装Win10系统详细教程</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005321.html" title="电脑系统故障无需愁,专业维修店帮你重装旧貌换新颜" target="_blank">· 电脑系统故障无需愁,专业维修店帮你重装旧貌换新...</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005320.html" title="联想笔记本一键重装Win10系统图文教程,小白也能轻松搞定!" target="_blank">· 联想笔记本一键重装Win10系统图文教程,小白也能...</a><span class="text-muted pull-right">02-05</span></dd> <dd><a href="/win11/1005319.html" title="笔记本重装系统图文教程:从光盘启动一步到位" target="_blank">· 笔记本重装系统图文教程:从光盘启动一步到位</a><span class="text-muted pull-right">02-05</span></dd> </dl> <dl class="col-sm-4 site-link"> <dt>好站推荐</dt><dd> <a href="https://www.runoob.com" title="菜鸟教程(www.runoob.com)提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识。 同时本站中也提供了大量的在线实例,通过实例,您可以更好的学习编程。" target="_blank">菜鸟教程</a></dd><dd> <a href="https://www.jb51.cc" title="编程之家(www.jb51.cc)是成立于2017年面向全球中文开发者的技术内容分享平台。提供编程导航、编程问答、编程博文、编程百科、编程教程、编程工具、编程实例等开发者最需要的编程技术内容与开发工具支持,与你一起学习编程,相信编程改变未来!" target="_blank">编程之家</a></dd><dd> <a href="" title="前端之家 f2er.com 前端开发人员所需学习知识手册。" target="_blank">前端之家</a></dd></dl> <dl class="col-sm-2 site-link"> <dt>商务合作</dt> <dd><a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=76874919&site=qq&menu=yes">联系我们</a></dd> </dl> </div> <div class="copyright"> Copyright © 2019 前端之家. 当前版本 V7.0.16<br> <span class="ml5">前端之家 版权所有 <a href="https://beian.miit.gov.cn/" target="_blank" rel="nofollow">闽ICP备13020303号-10</a></span> </div> </div> </footer> <script type="text/javascript" src="/js/base.js"></script> </body> </html>