小程式取消IOS虛擬支付解決方案

來源:互聯網
上載者:User

標籤:文檔   scope   支付介面   過程   方法   span   使用   伺服器   ogr   

前因

本來我們的小程式用的好好的,結果突然有一天,就把小程式的ios端的虛擬支付給關了。。。坑爹啊!搞的安卓端的可以支付,ios的支付不了。於是就在網上找解決辦法。

一說通過app跳轉支付,總不能為了個ios的支付再去整個app吧……( ̄▽ ̄)"

二是把虛擬支付搞成實體商品,線下發貨。小本經營,搞不起搞不起……ε=ε=ε=(~ ̄▽ ̄)~

三是免費。wqndy……( o=^•ェ•)o ┏━┓

四是通過公眾號支付。(o?v?)ノ

那肯定是四沒跑了。但是這是第一篇,沒有代碼!(。^▽^) 還在測試呢

思路

要在公眾號支付,其實我們想到的就是使用公眾號的H5支付。那麼怎麼通過小程式到公眾號的H5又是個問題。直接用小程式的webview很顯然是不行的,是真的不行,試過了(lll¬ω¬)。我們肯定是想通過小程式直接跳轉到公眾號實現支付,這樣體驗還稍微,我是說稍微會好點。好吧,不廢話,直接說我們的方案。

模板訊息

對的對的,小程式端點購買,然後給公眾號發一條模板訊息,通過模板訊息進入到支付介面,實現購買,購買成功之後,點擊模板訊息再回到小程式。emmm……好吧,我承認這圈子繞的不是一般的大。不知道各位有沒有更好的辦法(真心求教啊!!!),反正我是沒有了。。。為了實現這東西差點沒把我繞死。。。

小程式給公眾號發模板訊息

 根據公眾號官方文檔可以看出,https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277,(自己看,懶得)像很多參數是可以確定的,不怎麼會變的,比如access_token啊,template_id啊,url啊之類的,唯一的一個就是touser(接受者的openid)也就是說我們要在小程式端擷取公眾號的openid。怎麼擷取?

公眾號靜默授權

是的,通過公眾號的靜默授權。我這不是為了格式美觀嘛!(●ˇ∀ˇ●),為啥不是以snsapi_userinfo為scope發起的網頁授權呢,因為使用者體驗啊,你在小程式裡面你試試還讓使用者點下同意登陸xx公眾號試試……嗯哼,咋的靜默呢,通過webview啊,然後靜默授權完之後還能直接回來小程式的上一級頁面呢,就是會突然白屏( ̄▽ ̄)",那你就授權頁那邊加點東西好了,我們就是加了支付的引導頁,勉強不會覺得太坑。哦,對,授權,你得先把公眾號的授權網域名稱設定好!不然什麼都是白搭啊。哦哦,還有小程式的webview自動返回,可以參考官方文檔的https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html 的wx.miniProgram.getEnv和wx.miniProgram.navigateBack方法,一個檢測環境是不是小程式,一個回退。好的,通過靜默授權,我們就拿到了openid了,我們就可以發送模板訊息了,好,假設我們發送出去了。。。( ̄︶ ̄) ,然後你會發現其實並沒有。為啥?哦哦,使用者沒關注公眾號。哈哈哈哈ヾ(≧▽≦*)o爽不爽~那沒關注公眾號你肯定發不出去啊,那就存起來唄,先存到資料庫,然後引導使用者關注,通過使用者關注事件推送的訊息,你又拿到使用者的openid了,然後去資料庫查,很顯然,肯定是拿最新的一條訊息作為再次發送模板訊息的參數了,畢竟你也只有一個openid的參數是不是~好,這次真的發送出去了!

公眾號

 首先你的公眾號得申請開發人員吧,得設定管理員網域名稱吧,既然要支付,得配置公眾號JS安全網域名稱吧,順便再把業務網域名稱也配置了唄。??,準備就緒!

 然後你要寫接受事件推送,還是關注事件的推送,然後查庫,然後掉發送模板訊息介面。

 再然後,點擊模板訊息,模板訊息的url參數對應的頁面肯定是在JS安全網域名稱對應的網站上的。通過url的上代的參數,可以把訂單的一些資訊帶過來,然後你擷取JSAPI許可權,還要擷取JSAPI支付介面參數。看文檔https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115 照著來就行。支付參數裡面有一個需要調公眾號統一下單的介面,還是看文檔https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1 ,啊,終於可以支付了。支付成功之後,關掉頁面,然後公眾號再推送一條模板訊息,然後你一點這個模板訊息你就又回到了小程式(參數上面的有說文檔地址)。

總結

 整個思路大概就是這樣。當然中間的過程對我們來說還是挺曲折的,要對公眾號做開發人員認證,認證了要做支付網頁,要做接受事件推送的介面,要申請公眾號的支付,那麼又需要有商戶號,然後又是一大堆認證,就為了獲得商戶id和API的key等等等等。好在現在進入測試階段了。

好,我還專門畫了個圖

 

小程式取消IOS虛擬支付解決方案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.