android微信支付的实现
微信支付雖說要300審核費(fèi),但是提交的材料相比較于支付寶還是挺少的!
使用微信支付的接口,首先在微信開放平臺(tái)上注冊(cè),申請(qǐng)成為開發(fā)者(需要300元/年),然后微信會(huì)給你發(fā)送郵件內(nèi)容為商戶的登錄賬號(hào)和密碼(自己保存一下,看過后可能會(huì)自動(dòng)刪除),如果僅僅是使用微信支付,在申請(qǐng)應(yīng)用時(shí)你需要輸入應(yīng)用的
應(yīng)用簽名:(即32位MD5,注意一定要與軟件使用的key.store保持一致)
包名:(使用微信支付的APP包名),根據(jù)微信的提示,進(jìn)行下一步
你還需要準(zhǔn)備的材料有 APP_ID(你申請(qǐng)應(yīng)用時(shí)會(huì)給你 AppID和AppSecret,而APPSecret我在使用時(shí)沒有用到 )、MCH_ID(分給你的商戶ID)和API_KEY(商戶密鑰,這個(gè)東西需要你登錄商戶平臺(tái)自己設(shè)置),如果你得到了這三樣?xùn)|西你就已經(jīng)成功了一半。下載微信提供的android demo,在eclipse中打開,下面非常重要,你需要修改的東西有:
(1)Constants.java中的三個(gè)常量,對(duì)應(yīng)我們上面提到過的三個(gè)材料
(2)AndroidManifest.xml 中的<data android:scheme="****"/>把他修改為Constants.java中APP_ID所代表的常量。
(3)申請(qǐng)應(yīng)用時(shí)的應(yīng)用簽名和包名保持一致。比如微信提供的demo的包名為com.weixin.paydemo,如果我想用它作為測試demo,則申請(qǐng)應(yīng)用的包名必須為com.weixin.paydemo;對(duì)于應(yīng)用簽名,使用eclipse導(dǎo)出apk格式的文件時(shí),我新建了一個(gè)key.store,得到了32位MD5字符串,修改應(yīng)用簽名為這個(gè)32位MD5字符串。
在集成到自己做的APP中時(shí),由于微信給的demo分為三個(gè)按鈕來實(shí)現(xiàn),獲取prepay_id、組成支付參數(shù)和調(diào)用微信支付三個(gè)部分,對(duì)于第一個(gè)部分,demo使用的
GetPrepayIdTask getPrepayId = new GetPrepayIdTask();
? ? ? ? getPrepayId.execute();
來獲取prepayId,這是異步的,可以在主線程中使用得到prepay_id,對(duì)于支付參數(shù)demo提供的方法為genPayReq();對(duì)于調(diào)用微信支付demo提供的為sendPayReq();后兩步可在自己做的APP中使用一個(gè)button來控制,注意一點(diǎn):如果三者都放到一個(gè)button中控制,得到的prepay_id為空,程序會(huì)報(bào)錯(cuò)!自己整理了好久終于弄出來了,感覺好有成就感。。。。
針對(duì)支付成功后不能回調(diào)函數(shù)?
可以彈出微信支付的界面,但是支付之后沒有進(jìn)入回調(diào)的Activity:WXPayEntryActivity??
微信開放平臺(tái)有個(gè)?不成文的規(guī)定(文檔里沒有說明),就是回調(diào)的Activity必須是:你的包名(微信demo里是:net.sourceforge.simcpux)+.wxapi.WXPayEntryActivity.java
其他的接口回調(diào)的Activity必須是:你的包名(微信demo里是:net.sourceforge.simcpux)+.wxapi.WXEntryActivity.java
測試過程中肯定會(huì)遇見其他的問題,多問多查多搜!肯定能解決...語言組織的不好,希望對(duì)你有所幫助...
總結(jié)
以上是生活随笔為你收集整理的android微信支付的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 渲染管道(3)几何阶段二“坐标转换”
- 下一篇: 解决安装centos 7后Windows