APP是如何實現自動續費的?
01 目標
在APP內實現會員自動續費的功能
02 流程
2.1、會員自動續費授權
會員自動續費本質是委託扣款模式。只有使用者完成簽約,商戶才可以對使用者賬戶進行自動扣款,從而完成會員訂單的支付操作。
使用者在應用內透過微信或支付寶的SDK完成代扣簽約,微信或支付寶在使用者簽約成功後將簽約資訊透過非同步通知的方式通知給商戶後臺。商戶後臺需要維護使用者的簽約資訊,簽約ID為核心資訊,在訂單的代扣請求中用於驗證授權。
2.2、會員到期後自動發起續費流程
系統在檢測使用者會員即將到期後,發起該使用者自動續費流程。需要完成訂單建立及訂單支付環節(代扣),最後在支付通知回撥時為使用者延遲會員時間。續費訂單和普通訂單主要區別在於是否呼叫委託代扣介面。
03 委託扣款授權
使用者委託扣款授權是會員自動續費的前提,主要有支付中籤約和純簽約兩種模式。
3.1、支付中籤約
支付的同時完成代扣協議的簽約。只需要在原先的下單引數增加簽約資訊就可以支援簽約功能,看上去非常適合我們會員自動續費的場景。在使用者下單購買會員連續包月之後一併完成簽約功能。
然而在實踐的過程中發現有個問題忽略了,支付中籤約預設是不開啟簽約的,需要使用者手動開啟委託代扣。我們是希望可以提高使用者簽約比例的,需要使用者手動勾選這一步的操作成本真的太大了,不符合我們的預期。
3.2、僅簽約
純簽約模式是商戶先透過前端頁面呼叫純簽約介面與使用者完成代扣協議簽約,當需要扣款時可呼叫申請扣款介面進行自動扣款。使用者在簽約後商戶後臺會接收到回撥通知。
04 方案設計
調整後會員自動續費基本流程如下所示:
4.1、自動續費流程最佳化
使用僅簽約介面,不使用支付中籤約介面
僅簽約介面可以限定使用者必須簽約後才可以購買連續包月商品。為了模擬使用者簽約並支付的體驗,在使用者簽約成功後由系統發起自動續費流程。
4.2、如何避免會員簽約後的重複續費
最佳化流程後,使用者簽約成功之後需要發起自動續費流程。這裡需要確保不會對使用者重複續費,這裡可以考慮使用簽約ID作為訂單冪等元素。相同的簽約ID只會發起一次自動續費。
4.3、如何避免會員到期後的重複續費
當會員到期後會發起自動續費流程,這裡可以考慮使用會員到期時間戳作為訂單冪等元素。若會員續費成功,會員到期時間戳會相應延長,不會再觸發會員即將到期的邏輯。若會員續費失敗,會員到期時間戳還是不變,也不會發起多個續費訂單。
05 小結
在功能實現時換個思路可能會有不一樣的發現。在這個功能上,使用僅簽約介面可以模擬使用者支付並簽約的效果,符合我們的預期
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31562041/viewspace-2564417/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 會員自動續費該如何實現
- 如何實現 AppStore App 的自動下載APP
- iOS版愛奇藝取消自動續費教程 愛奇藝自動續費怎麼取消?iOS
- Dledger是如何實現主從自動切換的
- Spring Boot自動配置的"魔法"是如何實現的?Spring Boot
- IOS - 如何新增自動續費訂閱,避免稽核被拒iOS
- IT 自動化:如何去實現
- 爽了!免費的SSL,還能自動續期!
- 迅雷自動續費關閉方法2則
- 詳述微信自動跳轉外部瀏覽器是如何實現的瀏覽器
- 軟體是實現資料自動流動的核心
- 免費遊戲統治了App Store 如何實現盈利?遊戲APP
- Laravel 是自動發現擴充套件包是怎樣實現的Laravel套件
- iOS如何實現自動化打包iOS
- 如何實現辦公自動化?
- APPLE WATCH 的呼吸動效是怎麼實現的?APP
- 影片直播app原始碼,vue實現列表自動滾動的方式APP原始碼Vue
- js如何是利用apply實現繼承JSAPP繼承
- 如何實現 iOS App 的冷啟動優化iOSAPP優化
- [javascript]如何優雅的實現網頁自動滾動JavaScript網頁
- 如何實現自己的SpringBoot自動配置Spring Boot
- 簡單實現安卓app自動更新功能安卓APP
- 如何實現自動化工作流?
- 如何實現高度自動化測試?
- stf+appium app 真機自動化平臺實現APP
- Node.js 部署免費/自動續訂 HTTPSNode.jsHTTP
- acme+cloudflare生成免費證書(自動續期)ACMCloud
- Gitlab Runner實現NetCore自動化持續整合GitlabNetCore
- 如何在DataWindow中實現列的自動折行
- 微信小程式如何實現自動退款功能?微信小程式
- productForm是如何實現的ORM
- Laravel自動依賴解析的實現,其實是PHP對映解析LaravelPHP
- Spring中的applicationContext.xml實現自動裝配SpringAPPContextXML
- 本地Jenkins.war+SVN實現全自動化持續整合Jenkins
- 營銷自動化中的“潛客培育”如何實現
- 騰訊雲ClickHouse如何實現自動化的資料均衡?
- __weak如何實現物件值自動設定為nil的物件
- 華納雲:如何實現tomcat自動化部署Tomcat