Saturday, October 31, 2009

信用卡销卡风波

几个月前的某天:

有张某银行的信用卡,因为很久不用,偶然有个短信告诉我扣了100块的年费。
愤愤然,就打算给销了。

咨询以后得知只能电话操作,我就一个电话过去。

需要输入身份证和密码(电话操作的密码,不是取款密码),然后等待数分钟,有人接听。

R 您好,请问有什么能为你服务的?
L 我想销一张信用卡。
R 请问您为什么想销卡呢?
L 不想要了。
R ... 对信用卡的功能,作用,积分一顿猛说 ...
L 我不想要了,想销卡。
R 好的,为了验证您的身份,需要您回答一些办卡时的信息。
L 好。
R 请问您当时填写的家庭住址是哪里?
L 是 XX 吧?
R 不是。请问您当时填写的公司名称是什么?
L 是 XX 吧?(因为我也不记得了,这烂记性)
R 那您当时留的办公电话是?
L 抱歉啊,这个我不记得了。
R 好的,X先生,您的答案不能匹配我们的记录,很抱歉我不能为您办理销卡业务。
L 如果我挂失,需要这些信息么?我确实不记得那些信息了。
R 挂失是可以的。
L 挂失了还有年费么?
R 有的。
L 好吧。

挂断电话...
纠结........


今天:

前几天用那张信用卡取了2000块钱,
今天周末,打算还钱去。顺带一想,是不是可以把卡给销了。
遂找了附近的银行营业厅,里面有个不用拨号的电话,拿起来就打。

R 您好,请问有什么能为你服务的?
L 我想销一张信用卡。
R 请问您为什么想销卡呢?
L 不想要了。
R ... 对信用卡的功能,作用,积分一顿猛说 ...
L 我不想要了,想销卡。
R 好的,请问您想销的卡号后4位是什么?
L 2张都想销。
R 请您报一下卡号后4位好么?
L xxxx。另外一张没收到。(其实,另外一张是银行发短信说再办信卡有什么什么活动,我一想是不是可以借此机会证明我是卡片持有人,就答应办了,不过因为我没有修改账单地址,他给寄到以前的地址去了,我确实没收到)
R 好的,X先生,您好,我查询了一下您的账户,发现里面有未还款项,您必须结清里面的款项以后才可以办理销卡业务。
L 我不还是因为我之前打电话销卡,因为记不清我当时留的用户信息,所以不让我销,我不还款可以证明这张卡是我的,是否有营业厅可以还款,同时让我销掉这张卡?
R 您可以去信用卡办理中心,不过那里只提供身份证明,然后需要提交到我们信用卡客户管理中心,然后再处理您的销卡业务,整个流程下来需要10几个工作日。
L 需要这么久?
R 是的。
L 如果我一直不还卡里的钱会怎样?
R 到时候我们会有人上门收钱。
L 那我可不可以跟着收钱的人一起回去,还钱并且销卡?
R 不可以的,收钱的人是我们委托的。
L 我现在拿着这张卡,可以刷卡,取现,还钱,结果你说不能确认我的身份,不让我销卡,销卡必须确认我的开卡信息,我就是不记得了怎么办?
R 这个我也没有办法。
L (翻卡片发现10年3月就到期了) 那这张卡片到期以后我是不是就不用交年费了?
R 卡片到期后会自动续新卡,除非用户明确拒绝。
L 我要是没有那些信息呢?
R 那就没办法了。
L 要销卡是不是必须还清卡里的钱?
R 是的。
L 好吧,我知道了。再见。

挂了电话,我去了隔壁的自动存款机上把钱都还了。
我认栽。纠结的不行........

再会电话旁,打算用穷举法,去回答当时开卡时候的信息。
拨通以后又是输入身份证号和密码,然后有人听了,这次是个男的,前2次都是女的。

R 您好,请问有什么能为你服务的?
L 我想销一张信用卡。
R 好的,销卡以后您卡里的积分都没了。
L 我知道,我要销卡。
R 您要销哪张卡呢?
L 2张都要销。
R 好的。您卡里还有16元的余额...
L 我知道,不要了,我要销卡。
R 好的,请问您是否要保留您的用户信息呢?
L 有什么用?
R 您下次申请信用卡时验证会快一些。
L 谢谢,不用了,下次申请我再填。
R 好的。
... 同时,手机上来了2条短信,说我的2张信用卡已经停用。
L 我收到短信说信用卡停用,停用就是销卡么?
R 是的。
L 是以后就没有年费了?
R 是的。
L 好的,多谢。


挂电话。
有点莫名其妙。
这也太高效了,到底是为啥呢!!


路上我在想,
信用卡中心其实是不想让人销卡的,
所以就利用了我遗忘开卡信息这个理由,
千方百计的阻止我销卡。

不过,这个理由很不靠谱。
按照他们的说法是为了验证我的身份,
但是,
卡片使用时只需要卡片和密码即可验证身份,
在卡片欠费他们索费的时候应该只是凭借卡片关联的手机号码来确认身份:谁接电话跟谁要钱(管你谁呢,给钱就行),

如果他说销卡要那些开卡信息,那么平时的卡片使用过程中为什么不要求这么做?甚至连随机都没有。
那么他们所说的保护卡片安全 又在哪里呢?

就想我上面所说,
你允许别人使用卡片和密码随便使用,却不允许别人使用卡号和密码销卡,
这明显是一种极不公平的做法。
目的也很明显,
为了阻止用户销卡。

这样做只会降低用户的好感,
挫伤用户的心情。
于长久来看,
不是什么好事。

当然了,
电话员只是按照公司的规定办事,
我是不该改迁怒于他们的(好像我也没太过分,只是据理力争了一下子)。
问题在于这些规定的指定者。
销卡必须要开卡信息,
只能通过电话来操作。
这样的方式是否太专横了?

虽然说有信用卡中心可以做身份验证,但也只是提起申请,
而且效率极低,明显就是不想用户走这条路。

这跟国内的在线支付有些类似,
使用浏览器插件、控件名义上说为了用户安全,
其实是增加了用户的使用难度和复杂度。
paypal 并没有使用任何的浏览器插件、控件,
用户数量也并不比国内的支付产品少,
国外人也并不必国内人笨(黑客和诈骗应该也不少),
为啥人家就可以做好呢?


提供用户顺畅体验,
人们下次才会再来。
你老给人们设置障碍,
除非用户别无选择,
否则为啥要再来受阻受气一把?!

__end__

Thursday, October 29, 2009

心得

失败,失败,失败,首先大喊四声失败吧。


下面说心得:

01. 想去一个地方工作的话,弄清楚人家是做什么的,有什么主要业务,核心产品是什么很有必要的。
人家不会怕你烦的。


02. 做技术的人年轻的时候要深入的了解与掌握自己手头上的工具。所谓了解是指明白其工作原理,
虽然你会说,我又不做这个!但是了解其深层次的原理以后,会让你更好更有效的使用工具。
就好像写html的应该看看浏览器解析页面的机制。时间有限的时候就看看别人的分析,时间充裕
的时候就自己看浏览器实现代码(ff 和 webkit 都开源)。

掌握是什么呢?就是要熟悉工具的常用知识,比如关键字、常用函数、方法、类型等。虽然大多数
时候会有文档在手,不过熟练掌握的知识越多越好,所以,我们永远都不会闲的无聊。这就像练武
之人要时常练习一样,日久生疏。你每天都用的东西,总不能每天都需要翻帮助吧。每次翻出来,
删掉自己重写一遍,如此几次,慢慢会记住的,不可以过于依赖文档。

掌握是我薄弱的地方,以后会多加练习。


03. 多沟通,很多想法憋在肚子里烂掉了自己都不知道,说出来。
有时候有些话一出口,会自然带出很多你意想不到的东西来(当然,也有可能是不好的东西,稍微慎重一些)。


04. 身边常备纸笔熊。
纸笔拿来记录及草稿,
熊拿来表达不满、困惑和纠结——效果应该跟人差不多,好处是保护了秘密、朋友和自己。


--end--

Tuesday, October 20, 2009

看页面上有哪些域名

var s=get('http://www.sohu.com/').data,
d = {};
s.replace(/[\w\d_\.\-]+\.sohu\.com/g, function(a){d[a]=1;return ''});
for(var k in d){
print(k)
}


curl 'http://www.sohu.com/'|sed -n
's~^.*//\([a-zA-Z0-9_\.\-]\{1,20\}\.sohu\.com\).*$~\1~p'|uniq

果然对 bash 用的还不好啊。
还是熟悉js。

Saturday, October 10, 2009

nginx + app.py

python 的 web server 一般都写成 wsgi 兼容的 function 。
以前我都把他们用 spawn-fcgi 挂起来,这样需要 flup 库。

这么做的理由是什么呢?
没想法。


今天翻旧文章,
看到说 eventlet,
就去找了 greenlet 和 eventlet 来尝试,
结果发现 webpy 自带的 wsgi 服务器 rps 最大可以达到 800 左右,
而用 eventlet 的 wsgi 服务器可以达到 1000 以上,
这些只是在本机测试,
不知道如果是2台机器测试,这个值会不会更高。

如果 wsgi 都能跑这么好的成绩了,
那么我还要 fcgi 做什么!!
直接跑 wsgi 然后 nginx 里 proxy,还可以 upstream 。
这是多美好的事情 :-)

感谢 gashero<http://gashero.javaeye.com/blog/442177>,greenlet<http://svn.red-bean.com/bob/greenlet/trunk/>,eventlet<http://svn.secondlife.com/svn/eventlet/trunk/>。

Friday, October 9, 2009

run redmine on debian by nginx

sudo apt-get install ruby
sudo apt-get install libopenssl-ruby1.8 spawn-fcgi
sudo apt-get install gem
sudo gem install mysql rails

cd ~/
mkdir apps
cd apps
wget http://rubyforge.org/frs/download.php/63583/redmine-0.8.5.tar.gz
tar zxf redmine-0.8.5.tar.gz
cd redmine-0.8.5
cd config
cp database.yml.example database.yml
vim database.yml
rake db:migrate RAILS_ENV="production"
....


cd ../public
cp dispatch.fcgi.example dispatch.fcgi
vim Makefile
start: dispatch.fcgi
spawn-fcgi -d `pwd` -f `pwd`/dispatch.fcgi -s
`pwd`/redmine.socket -P re dmine.pid && chmod a+w redmine.socket

stop: redmine.pid
kill `cat $<`; rm -rf $<
vim /etc/nginx/xxx
fastcgi_pass "unix:/path/to/redmine-0.8.5/public/redmine.socket";

make start
sudo nginx -s reload


OOK
;)


仅记录为自己所用,
如果疑问,
欢迎讨论。
:)