1. 程式人生 > >安卓微信支付踩坑,對剛接觸安卓開發的小白絕對有幫助

安卓微信支付踩坑,對剛接觸安卓開發的小白絕對有幫助

剛接觸安卓開發,就遇到了專案需要接入微信支付以及退款功能,根據自己iOS開發的經驗,確定如下幾個步驟,一步一步的來,有不對的地方多擔待。

1.配置微信支付的環境,下載微信官方提供demo,把裡面需要配置的包拖進你的當前工程,這裡說一下,微信官方的demo就是屎,很多的東西,需要使用者自己慢慢的爬坑,官方demo傳送地址
微信安卓demo下載

需要把下面兩個包拖進你的工程裡,第一個有用,第二個目前還不知道有什麼用處。
這裡寫圖片描述
這裡寫圖片描述

2.配置完環境後就可以進行微信支付的程式碼操作了,因為我們公司後臺沒有寫介面,配置微信支付必要的引數,這個工作就需要在客戶端來完成了,只能在網上百度各種整合好的demo示例,一點點的去驗證,誒,有一個好的後臺寫介面,會省去你大半的功夫,好了,先上示例程式碼的下載連結,

微信支付客戶端程式碼示例
下載下來執行下就能支付了麼,大錯特錯,因為這個工程示例是用eclipse來寫的 而不是用AS來寫的,執行編譯肯定有錯誤,下面我就要來說下配置他的坑,首先你需要把請求的兩個jar檔案匯入你的工程裡面 如下圖 這裡寫圖片描述

然後找到工程裡面的四個檔案,你可以在自己的專案中建立一個資料夾,把裡面的程式碼全都複製貼上過去就可以了。
這裡寫圖片描述

上圖就是下載專案中的四個檔案,下圖就是我自己建立的資料夾下的檔案

這裡寫圖片描述
這樣建立好之後,你就需要引入必要的東西,然後編譯專案,你會發現報錯了,具體的錯誤內容我忘了,但是大體的意思就是有重複的資源之類的,直接上程式碼,下面程式碼解決了上述的問題。

packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' exclude 'META-INF/dependencies.txt' exclude 'META-INF/LGPL2.1'
}

這些程式碼需要在 bubuild.gradle 裡面去配置,你在編譯一下,就不會報錯了,下面你就可以生成預支付訂單,然後進行支付了,現在在這裡指出幾個大坑。

2.1. 微信支付回撥的問題,首先你需要建立一個packname資料夾,資料夾的名字必須是你的包名 + .wxapi 然後在這個資料夾下面,建立一個 WXPayEntryActivity 類,來接收微信支付回撥的結果,這裡就不沾出具體的程式碼了,上面提供下載連結裡有,直接複製就能用了,因為是小白,當時對這樣建立根本就不明白什麼意思,浪費了很多的時間,最後搞懂了具體的意思,下面附上一張圖,希望可以幫剛接觸安卓開發的跳過這個坑 或許是我的理解能力不夠強,
這裡寫圖片描述
因為自己的包名是 activity.app.chielec.chargingpile 然後在後面加一個 .wxapi就可以收到回調了 ,當然,別忘了在AndroidManifest.xml進行註冊,下面貼上程式碼

<activity android:name=".wxapi.WXPayEntryActivity"
            android:exported="true"
            android:launchMode="singleTop"/>

這樣就可以收到回調了。

2.1.2 微信支付只成功一次,以後就在也調不起微信支付了,以及支付的時候支付結果老是1的問題,原因有三個,
第一,你的應用簽名和你在微信開放平臺上填寫的應用簽名不相符。
第二,你在測試微信支付的時候一直是在模擬器,或者是直接把程式執行到你的手機上進行測試,這樣是不對的,卡了我好久,直到在論壇上看到別人的評論說,微信支付測試,必須打包apk才能進行測試。
第三,你的其它配置引數有問題,我相信出問題基本都是前兩個原因。

下面的解決方法是 配置好必要的那些引數,打包好APK,生成APK後,會生成.jks檔案,這時你就需要知道.jks檔案的32位 md5 的值

keytool -list -v -keystore ~ /Desktop/agency.jks -alias 別名 -storepass 密碼 -keypass 密碼

加粗部分是.jks檔案的路徑,其它的就是打包apk時自己設定的東西。這樣在AS的Terminal中輸出一下就可以獲取到32位的md5值了 然後在修改微信開放平臺上的應用簽名,確定修改後,在安裝APK 測試微信支付,應該就可以順利的支付,不會在出現上面所述的問題。後面我會整理一個單獨的微信客戶端支付demo出來,然後這篇文章寫的有點不太好,有些細節沒注意到的也請諒解。

有任何疑問,可以加我Q 382010738 共同進步。

相關推薦

支付接觸開發絕對幫助

剛接觸安卓開發,就遇到了專案需要接入微信支付以及退款功能,根據自己iOS開發的經驗,確定如下幾個步驟,一步一步的來,有不對的地方多擔待。 1.配置微信支付的環境,下載微信官方提供demo,把裡面需要配置的包拖進你的當前工程,這裡說一下,微信官方的demo就是屎

一次痛苦又甜蜜的支付之旅

call utf-8 客戶 打開 區分 AD times jpg 運算 凡是和錢打交道的事,沒有一樣是容易的。這是我第一次接觸微信支付,發現網上還是有很多同學在求助,XXX了怎麽辦?XXX是什麽情況?為了幫助更多的小夥伴脫離“苦海”,我決定寫下這次的踩坑之旅,給更多的人幫助

支付

公司專案需要,需要接入第三方支付,前前後後也搞了很久。雖然微信公眾平臺文件已經寫得很清楚了,但是還是記錄一下整個接入的流程。 openid openid是微信使用者在公眾號appid下的唯一使用者標識(appid不同,則獲取到的openid就不同,所以不同的公眾號下有不同的openi

iOS整合支付讓人摸不透的sign

整合iOS微信支付時遇到一個坑,記錄一下。 由於公司業務需求,需要在現有App中新增微信支付功能。於是就開始整合微信的支付功能,先看了一遍官方的文件。然後當然是看官方提供的Demo工程了,於是就下了官方提供的示例工程:(https://pay.weixin.qq.com/

談談那些年支付過的

很早的時候就想寫這篇文章了,作為BAT中的一員,還真不想吐槽它,免得被人身攻擊。有人說,微信支付很簡單嘛,官網有例子,網上也有現成的例子,不過誰用誰知道,本人也是在深入瞭解之後,真心覺得微信支付裡的坑太多,BAT的開發們太敷衍了事,結果給不少的其他開發者帶來諸多麻煩。我在這裡做個稍全一點的介紹,儘

支付過的

在微信體系中,支付也算是比較重要的一環,這裡記錄一下工作中微信支付--公眾號支付踩過的一些坑。 問題: errorMsg : "chooseWXPay:fail, the permission value is offline verifying" 安卓沒有提示,ios會

開啟X5除錯使頁面可以在谷歌瀏覽器除錯【chrome://inspect/#devices】

1.微信瀏覽器開啟:http://debugx5.qq.com2.開啟後選擇以下選項3.開啟微信公眾號頁面4.開啟chrome://inspect/#devices  然後按移動端除錯方式開啟微信公眾號

PHPAPP支付下單處理非同步回撥——————支付這個

1.下單 其中陣列轉換xml格式,curl傳送請求,xml格式轉換成陣列可單獨封裝成函式。     public function index() {         $order = [             'appid'=>'123456',     

巨變!支付宣布將告別手機時代

微信支付 手機時代 支付巨變 相信很多人和采寶寶一樣,密切關註著昨天在廣州舉行的微信年度大戲“2018微信公開課PRO”。微信團隊大佬們悉數亮相演講,報告成績單,講新年計劃,其中采寶寶認為張小龍和耿誌軍兩位大咖的演講,做移動支付的夥伴一定要找來仔細聽。這裏采寶寶先梳理了幾個關鍵詞,大家可以理解為微信發力方

支付

    最近因為專案需求做了支付,暫時集成了支付寶支付和微信的支付,涉及到PC端Web網頁支付,和手機APP支付。支付寶的整合相對容易一些,文件齊全,描述規範,也便於理解,在此就不再累述;但是微信支付真的就是呵呵噠了,文件及其簡單,有等於沒有,沙箱測試環境問題

公眾號支付java開發支付簽名錯誤或者一直請求回撥方法問題

本編為原創,如需轉載,請註明出處。 微信支付開發過程中,如果沒有遇到簽名錯誤這個問題或者一直請求回撥方法問題,那麼感覺你開發了一個假對接,網上也有許多列子,以及官網也有微信團隊demo,但是還是有解決不了的各種簽名問題,demo需要手動修改因為他的加密方式會不盡如人意,還有排序問題。好了,話

分享之道

1.引入JS檔案 在需要呼叫JS介面的頁面引入如下JS檔案,(支援https):http://res.wx.qq.com/open/js/jweixin-1.2.0.js 備註:支援使用 AMD/CMD 標準模組載入方法載入 2.通過config介面注入許可權驗證配置

JAVA 支付過程中支付驗證簽名失敗。

       如果提示支付驗證簽名失敗,立馬進入這裡:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1  用官方提供的驗籤工具去檢查你的簽名是否和伺服器的一樣,如果不一樣,就一

支付之旅之單頁面應用

        年初產品引入了微信支付到現在不到半年的時間,一直沒有過太大的坑爹經歷,自認為微信支付也能hold住了,沒想到上週還是被微信支付團隊的同學狠狠的擺了一道。在這裡留個記錄,希望同入此坑的同學能儘快爬上來。 背景:        上半年上線了商城的微信支付,此專案

ASP.NET WEB API支付通知介面返回xml資料伺服器不識別問題

最近開發微信小程式中用到了微信支付功能,介面開發用的ASP.NET WEB API;在支付成功後,介面接受到微信伺服器的支付通知結果,處理完資料,介面返回給微信服務資料時出現了問題。微信伺服器識別不到返回的資料,導致重複通知。最終解決程式碼如下: protect

支付統一下單簽名錯誤

測試白名單也已設定。 請求路徑:https://api.mch.weixin.qq.com/pay/unifiedorder1、引數拼接(回車排序一下方便看):appid=wxb5e39527f2f3eb32&body=SourceTest&mch_id=1

支付統一下單簽名錯誤(生成的簽名和測試工具生成的一樣還報錯)解決方法

微信支付統一下單,簽名錯誤的原因很多,解決方法就是一個個排除。 簽名生成的通用步驟如下: 第一步,設所有傳送或者接收到的資料為集合M,將集合M內非空引數值的引數按照引數名ASCII碼從小到大排序(字典序),使用URL鍵值對的格式(即key1=value1&ke

支付申請之後支付授權目錄”怎麼修改?

微信支付 支付授權目錄不能改? 通過發郵件方式申請修改商戶功能設定資料, 收件人郵件地址:[email protected] 傳送格式:主題:微訊號+名稱,及“申請修改商戶功能設定”字樣郵件內容:1)微信公眾平臺登入帳號:2)公眾帳號名稱:3)公眾平臺微信帳號

記一次支付

微信支付-那些年填過的坑 由於最近專案需要用到微信支付,所以需要研究微信支付相關內容,微信支付本身不是什麼問題,只是過程比較繁瑣,前提工作需要準備充足方可開工,不然你會一個坑接著一坑的掉。 由於業務需要,需要pc端掃碼支付(掃碼支付)、微信公眾號端支付(公眾號支付)、ap

H5支付

純H5呼叫微信支付有很多需要注意的地方,1.繫結微信支付安全域名: 綁定了安全域名並不是在這個域名下的所有連線都可以喚起微信支付,這裡有一個嚴格的限制,就是繫結的這個域名下的不超過1級子目錄的頁面才有許可權喚起微信支付  舉個栗子: 安全域名:www.aaa.com/ www