$this->app->singleton('cache', function ($app) {
return new CacheManager($app);
});
$this->app->singleton('cache', function ($app) {
return new CacheManager($app);
});
之前做地址级联,总是需要省市区地址,网上的各种数据又不甚相同。一直想如果有一个统一的标准就好了,经过一番搜索,果然有官方版本:中华人民共和国行政区划代码 那么剩下的工作就是把他整理出来了。满足跨平台使用且可以灵活操作修改,甚至整理后导入数据库的就是 json 啦。所以整理如下: gitHub地址:ALawating-Rex/AreaAndBanks
当然支行数据是通过简单的爬虫程序爬下来的,并不是官方数据,因为官方数据我也找不到 = =!
抛砖引玉: 现在省市区地址的需求越来越多,但是始终缺少一个官方标准,当然 中华人民共和国民政部-中华人民共和国行政区划代码 这里有官方数据, 却不是程序员拿来即用的,开发也不应该在这里浪费时间,所以希望能够有一个统一的标准数据,value和code能够统一真的能够带来极大的便利。 尤其和快递对接的系统多少也会遇到过城市名不匹配的情况吧。 虽然银行支行数据这个使用案例相对较少了,但是标准数据几乎找不到。以上这些数据难道不是应该公开透明且以服务为目的的吗? 所以希望抛砖引玉,有人能整理一个标准数据。
学习python 写了个简单的小功能:
CSDN文章批量抓取以及导入WordPress
代码详见: github地址: https://github.com/ALawating-Rex/csdn_wordpress_posts_import
运行结果见:此分类的文章
功能基本实现,有很多不足之处,有时间再完善吧。
现在magento 支付宝插件在网上还是很多的。但是支付宝无线支付貌似还不多。这里我只是根据官方文档和其它
支付方式编写出无线支付的雏形,可用但是不完善,先记录在这里。(当然文章是点到为止,只给我这种菜鸟看看,大神无视我吧。)
---------------------------------------------------我就是分割线怎么了---------------------------------------------------
首先肯定是要熟悉支付宝官方给出的文档
手机网页即时到账接口 和 手机网页支付接入与使用规则 以及 demo 代码
之后开始梳理流程:
(一下是在默认情况下,不要纠结个别变量的不同)
1. 在magento中我们点击结账,如果支付方式选择的是第三方支付方式会跳转到相应支付方式Paymentcontroller里的redirectAction
在模块的system.xml 中加入你自己的后台配置代码
2. 在这里magento最主要的是 记录$order以及createBlock 输出html
$this->getResponse() ->setBody($this->getLayout() ->createBlock('alipaymobile/redirect') ->setOrder($order) ->toHtml());
3. 在输出的页面 例如是支付宝或者快钱等支付方式通常是隐藏的form表单包含要提交的信息,以及自动提交的js
但是支付宝无线支付有些不同,从官方文档中得知 我们首先需要 获得授权即调用接口手机网页即时到账授权接口
然后才是 调用接口手机网页即时到账交易接口
那么我的解决思路是在 Block/Redirect.php 中先去掉用授权接口然后是代码自动调用即时到帐接口完成结账。
这时候看到的网页是要跳转两次的。
4. 首先调用授权接口 隐藏的form表单提交的 url地址应当是 里一个例如AlipayapiController
并且主要代码都是在这个controller中实现的
//建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestHttp($para_token);
//获取request_token $request_token = $para_html_text['request_token'];
//建立请求 $alipaySubmit = new AlipaySubmit($alipay_config); $html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认');
注意:按这种方法其中出现的一个重要问题是会获取不到 notifyUrl 和 SuccessUrl, (除非你直接写的绝对路径,而不是从model中获取的)
是因为 在model中 getSuccessURL 和 getNotifyURL 都是使用protected声明的。 最简单的解决办法是改成public
以我之愚见好像没必要声明成protected
5. 处理success代码 和 notify代码即可。
这完成了结账流程没错,但是只是90%吧,因为还有重要的前端处理流程。
即PC端 是不需要显示这个支付方式的 一种解决办法是
在template/checkout/onpage/payment/methods.phtml 中找到代码
foreach ($methods as $_method): $_code = $_method->getCode();
在后面加上
if($_code == "alipaymobile_payment"){ continue; }
即可,当然这里的 alipaymobile_payment 要自己根据实际情况来定了。
另一个需要修改的地方是我的订单包括历史订单页面(我这里实在之前开发了继续支付功能)
当你在手机选择了 支付宝无线支付 但是没有做付款操作,转而用电脑继续,那么此时在订单付款按钮处就
不应该选择支付宝无线支付了。可以使用
$paymentsAllMethods = Mage::getSingleton('payment/config')->getActiveMethods();
过滤出可用的支付方式即可。
至此 就基本完成了。大家凑合看吧,其实有了官方文档,加上对magento有些了解花点时间就可以写出来的
我只不过写下我自己的解决办法。 不喜勿喷!欢迎指正!
懒得开发的可以联系我
但我不会去帮你定制。(哎呀,我的服务竟然这么差!)
---------------------------------------------------我就是分割线怎么了---------------------------------------------------
这是发在CSDN的第一篇文章,所以必须是原创的!
最开始在新浪上写博客,后来到百度空间,我只想说百度空间让我几乎没有了写博客的欲望。
总之现在又想乱写点东西了,给自己看也好。
PS: 会陆续把我印象笔记里的东西拿过来。
此文章通过 python 爬虫创建,原文是自己的csdn 地址: Magento 手机支付 (支付宝无线支付)
标题起的名字很大其实这里只说一个简单的方法
防止Sql注入的方法有很多,这里要说的其实就是漏洞演练平台Dvwa里的一种方式
直接看high级别的就可以了
$id = $_GET['id']; $id = stripslashes($id); $id = mysql_real_escape_string($id); if (is_numeric($id)){ $getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'"; $result = mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' ); $num = mysql_numrows($result);
可见它的处理方式是首先通过 stripslashes 函数删除变量中的反斜杠 ,
然后再使用函数mysql_real_escape_string 转义特殊字符就行了。
所以当我们编写类似代码的时候
$getid = "SELECT first_name, last_name FROM users WHERE user_id = '$id'";
我们最简单的方法是
直接将变量$id 进行stripslashes 和 mysql_real_escape_string 处理。
注意: 这里并不是说这样就安全了, 这只是其中一种方式我可没说这就安全了。 更多的还要依据实际情况进行处理。
——来自自己的笔记
此文章通过 python 爬虫创建,原文是自己的csdn 地址: php 防止sql注入