61.實名認證的故事。
聽說,官方公安提供的實名認證接口只有1個,一次調用5元錢。
阿里因爲量大,和公安談判,貌似1元1次。
通過多年,阿里積累了大量的實名認證數據,後來還對外提供了這項服務,一次調用只須要1元錢。
後來,被官方給叫停了。
還有一個故事,微博實名以後,新浪須要對幾億用戶進行實名認證,須要花大筆錢。
聽說,爲了節省一些錢,把這個事包裝成一個項目,交給了第三方公司,而後搞定了認證。
權力壟斷致使的坑爹事件,這些商業公司花了好多冤枉錢啊。
62.p2p實名認證。
某小公司,爲了節省錢,從網上下載了3000萬的實名認證數據,導入到本身的庫中。
具體到項目中,投標不須要實名認證,下降門檻。實名認證以後,才能提現。
不過呢,我發現存在「洗錢」的可能,投標的時候,用A帳戶,實名認證用B帳戶,提現用B帳戶。
錢就從A到B了。
63.把一個沒用的表給刪除了,通知了下boss,隨手發了個「刪了」。
應該發「已刪」,「刪了」有歧義
64.有線網絡與無線網絡的優先級問題。
同時接入有線網絡和無線網絡,網絡信號顯示的是,「無線網絡的信號」。
65.移動大型文件時,電腦會很是卡,應該是磁盤IO比較差。
I5的CPU,8G內存,按說仍是不錯的。
66.Windows7安裝IIS,測試安裝是否成功。
進入Win7的控制面板,選擇「程序」而後在點擊「程序和功能」,在左側選擇的「打開或關閉Windows功能」在出現的列表中選擇IIS7而後肯定。
iis7更改默認鏈接80端口的方法
67.SpringMVC的RedirectView與post請求。
第4個參數爲false,是post請求。
但官方的文檔不是這麼說的,「exposeModelAttributes whether or not model attributes should be exposed as query parameters」,是否須要暴露參數。
RedirectView的底層實現仍是response.sendRedirect,url是get實現的。
重定向2種方式實現:
@RequestMapping(value = "/recharge/applyPayment")
public RedirectView applyPayment(@RequestParam Long id,
ModelMap modelMap, HttpServletRequest request,
HttpServletResponse response) {
P2PRecharge p2pRecharge = p2pRechargeService.findP2PRechargeById(id);
Double inputOrderAmount = p2pRecharge.getMoney();
Money orderMoney = new Money(inputOrderAmount);
modelMap.putAll(baofuConfig.getApplyParams());
modelMap.put(BaofuConfig.BaofuApplyKey.OrderMoney.name(), orderMoney.getCent());
modelMap.put(BaofuConfig.BaofuApplyKey.TradeDate.name(), dateformat.format(p2pRecharge.getAddTime()));
modelMap.put(BaofuConfig.BaofuApplyKey.TransID.name(), p2pRecharge.getId());
modelMap.put("signature", getApplySign(modelMap,baofuConfig.getKey()));
//方法1,用RedirectView
return new RedirectView(
"https://vgw.baofoo.com/payindex", true,
false, true);
//方法2,直接用原生的
try {
String p="";
for(Entry<String, Object> entry:modelMap.entrySet()){
p+=entry.getKey()+"="+entry.getValue()+"&";
}
//p+=BaofuConfig.BaofuApplyKey.OrderMoney.name()+"="+
response.sendRedirect("https://a.com/payindex?"+p);
} catch (IOException e) {
e.printStackTrace();
}
}
重定向是否存在get和post這個概念?
68.金錢Money的小數位被吃了。
咱們在「2015年工做中遇到的問題:51-60」第56個問題「SpringMVC接收參數疑問。」說道,爲了可以「不建立字段,可是經過set方法接收參數」,
結果,尼瑪,出大問題了。
自從增長了這個方法,
/*
public void setIntegerPart(Long integerPart) {
this.cent = integerPart*100;
}*/
全部涉及資金轉帳的地方,浮點數部分都沒有了,只留下了整數部分。
這是爲什麼呢?
咱們只能根據結果分析,WebService調用的時候,Money序列化出了問題。
調用的時候,Money是101,結果到WebService實現的時候,Money是100。
從嚴謹出發,我我的不喜歡在Bean中建立沒有實際字段的getter和setter方法。
69.WebService通訊,把Money序列化,爲何會調用setIntegerPart方法。
通過屢次對比分析,只要有setIntegerPart方法,資金相關的就不正確。
原本覺得,只要把「long cent;」改爲「private long cent;」就行了。
據Boss所說,用WebService的時候,它遇到過相似的狀況,若是變量沒有設置爲private的,可能會和public的get方法衝突,出現異常狀況。
70.Redis的幾個小問題。
a.鏈接redis客戶端
redis-cli,全都是默認的配置
b.顯示全部的keys
keys (
c.刪除key
del key_name
d.查看1個key的過時時間
ttl key_name,-1表示永不過時,-2表示不存在
今天遇到一個很棘手的問題
//若是這個key不在redis中,就設置,並緩存一段時間。
//TODO 問題,若是setIfAbsent執行以後,沒有設置過時時間,且此時,服務器掛了,那麼後面的設置緩存時間就失敗了,而後這個key一直緩存在redis中。
public boolean setIfAbsent(String key, Object value, long timeout){
ValueOperations<String, Object> valueops = businessRedisTemplate
.opsForValue();
boolean result = valueops.setIfAbsent(key, value);
if(result){
this.add(key, value, timeout, TimeUnit.SECONDS);
}
return result;
}