會員自動續費該如何實現

一、目標

在APP內實現會員自動續費功能前端

二、流程

在APP內實現會員自動續費功能,其核心流程有如下兩個環節:微信

2.1 會員自動續費受權

會員自動續費本質是委託扣款模式。只有用戶完成簽約,商戶才能夠對用戶帳戶進行自動扣款,從而完成會員訂單的支付操做。異步

用戶在應用內經過微信或支付寶的SDK完成代扣簽約,微信或支付寶在用戶簽約成功後將簽約信息經過異步通知的方式通知給商戶後臺。商戶後臺須要維護用戶的簽約信息,簽約ID爲核心信息,在訂單的代扣請求中用於驗證受權。post

2.2 會員到期後自動發起續費流程

系統在檢測用戶會員即將到期後,發起該用戶自動續費流程。須要完成訂單建立及訂單支付環節(代扣),最後在支付通知回調時爲用戶延遲會員時間。續費訂單和普通訂單主要區別在因而否調用委託代扣接口。微信支付

三、委託扣款受權

用戶委託扣款受權是會員自動續費的前提,主要有支付中籤約純簽約兩種模式。優化

3.1 支付中籤約

支付的同時完成代扣協議的簽約。只須要在原先的下單參數增長簽約信息就能夠支持簽約功能,看上去很是適合咱們會員自動續費的場景。在用戶下單購買會員連續包月以後一併完成簽約功能。 設計

微信支付中籤約

然而在實踐的過程當中發現有個問題忽略了,支付中籤約默認是不開啓簽約的,須要用戶手動開啓委託代扣。咱們是但願能夠提升用戶簽約比例的,須要用戶手動勾選這一步的操做成本真的太大了,不符合咱們的預期。cdn

3.2 僅簽約

純簽約模式是商戶先經過前端頁面調用純簽約接口與用戶完成代扣協議簽約,當須要扣款時可調用申請扣款接口進行自動扣款。用戶在簽約後商戶後臺會接收到回調通知。blog

微信僅簽約

四、方案設計

調整後會員自動續費基本流程以下所示: 接口

會員自動續費流程

4.1 自動續費流程優化

  • 使用僅簽約接口,不使用支付中籤約接口

僅簽約接口能夠限定用戶必須簽約後才能夠購買連續包月商品。爲了模擬用戶簽約並支付的體驗,在用戶簽約成功後由系統發起自動續費流程。

4.2 如何避免會員簽約後的重複續費

優化流程後,用戶簽約成功以後須要發起自動續費流程。這裏須要確保不會對用戶重複續費,這裏能夠考慮使用簽約ID做爲訂單冪等元素。相同的簽約ID只會發起一次自動續費。

4.3 如何避免會員到期後的重複續費

當會員到期後會發起自動續費流程,這裏能夠考慮使用會員到期時間戳做爲訂單冪等元素。若會員續費成功,會員到期時間戳會相應延長,不會再觸發會員即將到期的邏輯。若會員續費失敗,會員到期時間戳仍是不變,也不會發起多個續費訂單。

五、小結

在功能實現時換個思路可能會有不同的發現。在這個功能上,使用僅簽約接口能夠模擬用戶支付並簽約的效果,符合咱們的預期。關於訂單服務的設計能夠查看以前的文章:訂單服務的設計思考

相關文章
相關標籤/搜索