2019年2月21日 星期四

CefSharp3 Multi Thread Add listen AddressChanged Event

原來使用的套件 Awesomium.NET 因為太久沒更新對於BootStrap4的支援已經跟不上了,所以選擇的替代方案是CefSharp3這個Open Source Core。

不意外的CefSharp3也是Chrome Base的可是導入在WIN AP上有完整的範例,版控更新上於GitHub也能看出他的活躍,總之這是要補紀錄在multi Thread增加EVENT的備忘,免得過段時間又忘記怎麼做。

首先增加要listen的FUNC
/// <summary>
/// 設定新分頁的url address變更的監聽
/// </summary>
private void setNewTab_addressCheangeEvent() {
            var control = GetCurrentTabControl();
            if (control != null)
            {
                control.Browser.AddressChanged += new EventHandler<AddressChangedEventArgs>(web_Auto_AddressChanged);
            }
}
//這個是把網址寫到指定的區域內
 private void web_Auto_AddressChanged(object sender, AddressChangedEventArgs e){
            SetTxt_Url(e.Address);
}

private delegate void str_Delegate(string str);
private void SetTxt_Url(string str) {
            if (InvokeRequired) {
                Invoke(new str_Delegate(SetTxt_Url), str);
                return;
            }
            TSL_url.Text = str;
}
接著於browserTabControl.TabPages.Add(tabPage); 之後加上 setNewTab_addressCheangeEvent();就會在每次新增的Tab都會去加入這EVENT的Listen。

這是以AddressChanged 觸發時的範例,其他的以此類推即可。

補充: 有趣的文章
JS處理修改URL但不跳轉的方法,在WEB POS接地氣上面來說對我幫助很大,節錄ing
var stateObj = { foo"bar" };
history.pushState(stateObj, """controler/function/variable");

2019年2月12日 星期二

Redmine SETUP Memo

Redmine是一套Open Source的專案管理系統,之前安裝的是2.6近期再檢視已經發行到4.0.1版了,進行升級的參考此頁面的步驟,無痛(補充1?)的升級完成。

後來發現升級4.0.1其實也不是那麼需要,主因是同事發現此樣板覺得與GitHub敏捷管理類似,需要套用~套用完畢之後發現沒有出現就覺得是新版的有,其實都是誤會...因為即便是升級完畢依舊是沒有,它是以plugin方式加入的,說明如下:

Agile plugin 有 Lite版本是免費的,其餘進階版本都是要另外收年費,填寫完email之後會收到下載與安裝教學的連結,很直觀不過安裝時會檢查是否安裝crm套件,這部分就得先安裝CRM套件後才能順利安裝Agile plugin。

補充1: 2.6 to 4.0.1 唯一出的問題是ruby的版本需 > 2,原先安裝的版本是 1.9.1,變更ruby的步驟參考此頁面處理,用RVM管理Ruby版本真是方便!! 至於安裝ruby會依照不同的環境有不同的方式,就不留存了。

補充2: 啟用Redmine方式依舊沒變在VM環境下小小不方便(logout就關掉了),所以很開心script方式還是可以使用,這部分方式就持續使用start_redmine.sh來啟用/關閉/重啟。

補充3: Tags  plugin 也是不錯用的套件,建議加裝。

2019年2月1日 星期五

LinePay oneTimeKey 備忘

導入LinePay在門市端會使用到oneTimeKey,就官方文件上的說明雖然給了範例碼但就少了個醍醐味,估狗上的資料一堆看到了這篇實作後打通任督二脈,總算把掛在頭上個把月的需求單給結了。

話說...怎麼是日文的呢? 可能是Line本來就是從日韓那邊來的吧,相對的英文論壇討論的資料就少得可憐,當然內地簡體字的文章挺多的,可在oneTimeKey討論上應該是應用的少也沒爬到關鍵文章。

總之...
amount很直覺的金額,不用.00也不用x100。
oneTimeKey真的只能用一次,即便沒付費成功在丟會回錯誤訊息。
ConfirmUrl可以設但實測用不到(埋Log)沒有官方觸發的紀錄。

另外要注意的地方是呼叫payment後取得transactionId再進行refund才會真正扣款付款完成。