很久沒寫東西了,恰逢最近作三方支付,聽身邊不少開發的朋友說都被微信坑過,就把過程記錄下,避免之後再碰到相似的坑。java
注意:微信申請的支付過程當中,大概兩到三個工做日就會有回覆,會給你申請的銀行卡號上隨機轉入一筆錢(想指着這發財的仍是免了吧,通常是幾毛幾分錢),而後須要在你綁定的微信號上開發激活帳號。這些在申請文檔步驟中都有提示。android
以上準備工做完過後正式進入接入微信支付到APP中的流程。web
流程圖中的1,2兩步不用多說,是開發者在本身應用中的內容api
從第六、7開始就是調用微信支付的核心代碼了服務器
1. 在調用支付前,先註冊APPID 商戶APP工程中引入微信JAR包,調用API前,須要先向微信註冊您的APPID,代碼以下: final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null); // 將該app註冊到微信 msgApi.registerApp("wxd930ea5d5a258f4f"); 2.而後調用核心代碼
IWXAPI api;
PayReq request = new PayReq();
request.appId = "wxd930ea5d5a258f4f";
request.partnerId = "1900000109";
request.prepayId= "1101000000140415649af9fc314aa427",;
request.packageValue = "Sign=WXPay";
request.nonceStr= "1101000000140429eb40476f8896f4c9";
request.timeStamp= "1398746574";
request.sign= "7FFECB600D7157C5AA49810D2D8F28BC2811827B";
api.sendReq(request);
注意:特別要注意簽名的問題啊老鐵們,這個簽名是二次簽名過的,就是說在第5步和第6步之間,必須把第一次返回的簽名信息,進行二次簽名,這個很是重要,筆者就是由於這個操做給坑了好久。微信
那個WXEnterActivity這個類是作微信分享時用的,只作支付的能夠忽略掉,注意回調結果app
還有就是千萬不要忘記,在AndroidManifest.xml中的配置文件
1. 權限
2. 配置核心代碼svg
<activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity android:name="com.tencent.tauth.AuthActivity" android:launchMode="singleTask" android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="你的微信註冊的AppID" />
</intent-filter>
</activity>
以上就是使用android開發者接入微信支付的簡單流程
總結:
1. 第一個就是那個簽名了,我相信不少開發者頭疼就在於這個簽名上了,二次復籤別忘了
2. 第二個是那個時間戳了,請認真看清楚這個時間戳是10位的,是精確到秒既可的,我們平時用的13位的那個精確到了毫秒
3. 查看是否在AndroidManifest.xml中配置了核心代碼
最最重要的,先認真閱讀流程圖和開發文檔,其實不少錯誤,文檔中都有提示的。
暫時mark到這吧!微信支付