1. 程式人生 > >微信支付demo的使用筆記

微信支付demo的使用筆記

        公司最近要上線微信支付功能模組了.Android版本的支付部分就研究了一下。由於申請公司賬號較為麻煩,所以只能使用微信官方的測試版。關於微信支付的這個測試版,有些小坑的地方。寫下了供大家參考,以免走些彎路。

     在官方的demo中,其提供了一個可以生成預訂單的介面:http://wxpay.weixin.qq.com/pub_v2/app/app_pay.php?plat=android請求這個介面,就會獲得一個預支付訂單,這個訂單的商品名稱,商品描述,價格都是預設的,無法自定義。之所以無法定製是因為微信支付官方提供的這個測試appid的金鑰沒有提供,只提供了apid。

1、首先下載官方的demo

     官方的demo,是eclipse版本的,下下來就可以直接跑。這一點比較贊。但是我的微訊號不知怎麼地了,測試了一次之後就再也測試不了了。這一點比較坑。重點來了:如果您也遇到了這種情況,並且錯誤返回碼為-1,這是你可以嘗試換一個微訊號試試。這是第一種解決辦法。第二種解決辦法是你解除安裝掉微信,之後再安裝。我就是這樣解決的。這個bug難以復現,就不探究為什麼會產生這個問題了。

2、關於向Android Studio遷移的問題

     我把官方的demo簡化後遷移到了studio,但是就是無法呼叫微信支付。我反思了一下,首先明確這麼幾點:

  1. 微信官方用於微信支付第三方應用驗證的原理是:應用的包名+應用的MD5簽名。
  2. 我使用的是微信官方提供的demo,因此如果想用他的藉口就得把包名替換為官方demo的包名
  3. 關於MD5的產生,依照我的理解,這個MD5產生的依據,應該是包名和keystore
  4. 因此將as上的demo的包名替換為 net.sourceforge.simcpux,關於debug.keystore可以在那個官方demo中找到

    明確了問題的原因,就去解決吧!包名容易替換,關於keystore的替換,在Android Studio中有兩種方式(來源於stackoverflow):

  1. 在你的遷移到的應用的moudle的build.gradle檔案中新增

android {
    signingConfigs {
        debug {
            storeFile file("your.keystore")  //替換為全路徑
            }
        }
    }

       2.引導式新增:File->Project Structure

            Add a keystore at "Signing" Tab:先選中你的moudle,然後點選Singing
            Select it for your debug/release "Build types".  在點選那個"+",然後起個名字debug
            Make sure the alias name matchs with your keystore (keytool -list -v shows your alias name):然後在store file那兒按照引導新增官方的debug.keystore就可以了

就寫到這裡吧!等到公司appid申請完畢,有什麼新問題在寫。小夥伴們遇到這方面的困難,可以私信我.

附加內容: