###### tags: `Ruby & Rails` # 20221124 Rails <政庭> ### 幕前處理 - 在前端一路做完訂單付款流程 ### 幕後處理 - 非同步處理,先在前端產生付款訂單。但沒有馬上付錢。 ### ngrok - 小工具 串接(第三方登入/金流),可以產生「暫時的網址」,讓別人可以POST資料過來(put localhost on the Internet)。適用在「幕後處理」。 ### 可以使用設定環境變數的方式,來避免忘記更改ngrok產生的網址。 * 因為正式 push 到 server上,不會帶到本機的環境變數。 ### dotenv 產生環境變數 將專案 push 到 dev 環境 ### 工程師可以在 dev 環境測試 之後再到 staging環境測試 ### staging 環境 與 production 環境 相似度99% ### 環境變數:可以放重要資訊資訊在裡面,不要再放在code裡面。 ### 寫文章 為什麼使用環境變數 --- <侑庭> ### 幕前處理:信用卡 ->同步付款一步一步幕前(即時付款完成) ### 幕後處理:匯款-> 非同步 ,因為消費者不會立刻匯款所以當匯款完成後金流系統這邊查到帳,就會拋一包API(內涵 title , 商品名稱...等)給商家去接,然後等待商家確認知更改為已付款,但這中間消費者的畫面停在匯款頁面,府款之後才會做上面這一段 ### ngork -小工具,暫時開一個通道起來,讓對方可以post資料過來,用在幕後處理, 可用於串接金流系統跟第三方登入 ### 可以用環境變數來取代才不會忘記更改 ngork 產出的網址,每次都不同 ### dotenv 產生環境變數,讓專案的網址如果改變都可以抓到改變 ### 環境變數.env 因為環境不同所以可以帶入不同的環境變數如果我在上線時忘記改url 可以抓不同的env.dev or env.pud ### 正式的時候不會把env進版控,因為裡面會有路徑key, --- <于婷> ## 金流處理方式 ### 幕前 即時付款(信用卡) ### 幕後處理 非同步處理,沒有馬上付錢(匯款) ## ngork 套件 可以產生「暫時的網址」 ## dotenv 套件 處理環境變數 或 機要資訊(金鑰) ## 處理兩個JS controller 溝通 參考這裡[fullstackheroes](https://fullstackheroes.com/tutorials/stimulus/create-custom-events/) ```ruby= const event = new CustomEvent("update-map"); window.dispatchEvent(event); ``` ```ruby= data-action="update-map@window->map#updateHotspotLocation" ``` ## 隨機產生12位數亂碼 ```ruby= before_validation :generate_serial private def generate_serial self.serial = SecureRandom.alphanumeric(12) end ```