android中微信支付!! 其實沒那麼難
最近這段時間在做微信支付,把一些開發的流程及遇到的一些問題記錄下來,以後遇到的話也能做個參考!畢竟剛接觸這個支付的時候也是走了好多彎路。
首先第一步肯定是要去申請你的公眾號,服務號各種的。。。
如果一切順利的話,就可以拿到以下東西,也是開發時所需要的
①java的證書(在退款,企業轉賬時用的上)
②AppID:微信分配的公眾賬號ID
③AppSecret:獲取token有用
④Mchid:微信支付分配的商戶號
上面這些都準備好後,需要登入到商戶平臺去設定一些開發環境:就是設定應用debug簽名(SHA1的值,注意是不需要冒號的,如果是正式釋出的版本需要用正式簽名的debug),和包名;
這一部做好了以後應該就能跑通官網下載的demo了,這部簽名和包名一定要正確,不然demo跑不通,LZ就是因為這個弄了好久。
不出意外的話應該就能調出微信的支付介面了。
下面我提供了兩個demo 一個是以前官網的,一個是現在在官網下載的。
前一個有一個自帶的debug的簽名的,只需要通過eclipse的windows --> preferences -- > android -->build 點選browse 找到那個DEMO中自帶的debug簽名,這樣就不需要到後臺去配置簽名那一步了。 後面這種就需要到商戶平臺去配置下簽名,如果是整合到自己的應用中,只需要改下簽名和包名就可以了。支付完成,按照支付寶的流程,支付完成應該有個回撥的,來通知我已經支付完成了。可是沒有回撥成功,去查了下資料。微信開放平臺有個
不成文的規定(文件裡沒有說明),就是回撥的Activity必須是:你的包名(微信demo裡是:net.sourceforge.simcpux)+.wxapi.WXPayEntryActivity.java,走起。。。。。可是還是沒去走回調。。。。又去百度下,發現在發起微信支付時,有一個
至此微信支付的功能就差不多搞定了,接下就是安全性的,為了做安全性設計,把一些重要的東西放到伺服器生生成,這樣是為防止客戶端被反編譯。反編譯之後,帶來的就是別人拿到key 模擬支付過程,把某個訂單號支付完成。那麼,騰訊那邊收到錢就會同時給客戶端 和我們自己的伺服器傳送請求。那麼,我們自己的伺服器收到騰訊的通知之後,就會把這個訂單的狀態置為已經支付。
好了 ,後面我會繼續補充 一些轉賬功能,授權的一些問題。