Android微信支付集成步驟

準備工作

在應用集成微信支付之前,我們在微信開放平臺必須要個開發者賬戶

1.註冊完之後創建一個移動應用,並獲取APPid等可以參考:

http://blog.csdn.net/vroymond/article/details/53422744

2.申請開通微信支付能力

  • 認證開發者資格
5699111-0b4c486890d09d93.png
image.png
  • 開通微信支付
5699111-f2814912f925c2cc.png
image.png

3.開通成功後,獲取得到商戶號並在商戶平臺配置API密鑰(生成預支付訂單號需要)

API密鑰配置流程:http://help.ecmoban.com/article-2085.html

4.在項目中導入微信提供的jar包

5699111-5d75acf24253b27f.png
image.png

5.在項目包名下創建一個wxapi的包,並創建一個WXPayEntryActivity的類(微信分享以及登錄必須要求,該類繼承activity並實現IWXAPIEventHandler接口,用於拿到支付的回調結果),並在清單文件中註冊。

5699111-078dc6f6baefffa6.png
image.png

調起微信支付

步驟:

1.客戶端(APP)提交訂單信息給服務端,服務端根據微信接口:統一下單接口,生成預支付Id(prepay_id)返回給客戶端。

5699111-5b7293c480f1dd5f.png
image.png

2.客戶端(APP)根據預支付Id(prepay_id)調起微信支付

5699111-baa9a1090b5067ba.png
image.png

如何生成預支付Id(一般在服務端生成)?

根據統一下單接口文檔的規則:

服務端需要必須提交的參數字段有以下這些:(POST格式爲XML)

  • 應用ID appid 微信開放平臺審覈通過的應用APPID
  • 商戶號 mch_id 微信支付分配的商戶號
  • 隨機字符串nonce_str 隨機數生成算法
  • 商品描述body
  • 商戶訂單號out_trade_no
  • 總金額total_fee
  • 終端IP spbill_create_ip
  • 通知地址 notify_url
  • 交易類型trade_type
  • 簽名sign 簽名生成算法(重要)
    詳情可看:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1

sign簽名生成:

1.把我們所需要提交的參數(除sign外),拼接成URL鍵值對的格式(即key1=value1&key2=value2…)

5699111-5632cb924b72cd45.png
image.png
5699111-3d45186fb00bcb8e.png
image.png

2.得到拼接後的字符串之後拼接在商戶平臺生成 API密鑰

5699111-4dc545efc97ef4af.png
image.png
5699111-a6a239850cab5a45.png
image.png

3.拼接完key之後,進行MD5運算,再將得到的字符串所有字符轉換爲大寫,得到sign

5699111-d0aa3bc27f4b84c7.png
image.png

提交所有參數 調起統一下單接口 獲取預支付Id

APP客戶端調起微信支付

根據微信提供的調起微信支付的規則,APP端需要提交的參數爲:

5699111-1ffc3b4f79e93248.png
image.png

1.sign簽名生成

sign簽名生成步驟跟上面敘述的是一樣的(省略)。

2.生成完簽名,拼接所有支付參數。(PayReq,IWXAPI是微信提供jar包裏的類)

5699111-135a1f291a0a1155.png
image.png

3.調起微信支付

5699111-02bff8c9f55f4c29.png
image.png

(注意,運行的應用簽名必須跟在微信開放平臺的簽名需要一致,爲了方便調試可以讓debug使用relase簽名,配置步驟可參考:http://www.cnblogs.com/niray/p/5242985.html

至此,調起微信支付所有步驟完成

效果圖:

5699111-b900f22aeb45f6a4.png
image.png
5699111-6e9ce1724bbb6827.png
image.png

源碼地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章