目前支持 支付寶和 微信。
項目地址:https://github.com/didikee/AndroidDonateandroid
https://play.google.com/store/apps/details?id=com.didikee.donate.samplegit
掃描二維碼下載demo程序
github
Step 1: 在你的 項目級別(不是 Module級別) build.gradle
裏添加:服務器
allprojects { repositories { ... maven { url 'https://jitpack.io' } } }
Step 2: 在你的 Module
級別 build.gradle
裏添加:微信
dependencies { compile 'com.github.didikee:AndroidDonate:0.1.0' }
/** * 支付寶支付 * @param payCode 收款碼後面的字符串;例如:收款二維碼裏面的字符串爲 https://qr.alipay.com/stx00187oxldjvyo3ofaw60 ,則 * payCode = stx00187oxldjvyo3ofaw60 * 注:不區分大小寫 */ private void donateAlipay(String payCode) { boolean hasInstalledAlipayClient = AlipayDonate.hasInstalledAlipayClient(this); if (hasInstalledAlipayClient) { AlipayDonate.startAlipayClient(this, payCode); } }
/** * 須要提早準備好 微信收款碼 照片,可經過微信客戶端生成 */ private void donateWeixin() { InputStream weixinQrIs = getResources().openRawResource(R.raw.didikee_weixin); String qrPath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "AndroidDonateSample" + File.separator + "didikee_weixin.png"; WeiXinDonate.saveDonateQrImage2SDCard(qrPath, BitmapFactory.decodeStream(weixinQrIs)); WeiXinDonate.donateViaWeiXin(this, qrPath); }
因爲二維碼的寫入讀取SDCard,因此不要忘記加上權限:app
<!-- 微信須要往sd卡寫入二維碼 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!-- 建立與刪除文件 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
關於支付寶捐贈,你須要準備好的是你的收款碼,也就是方法中的payCode
。
支付寶比微信好用、靈活、體驗好,具體體如今 支付寶能夠自定義金額收款,也能夠生成商家收款碼(商家收款未測試)。maven
從支付寶首頁頂部的收款進入:(如圖)測試
你能夠自主選擇設置金額和備註,而後保存二維碼圖片。gradle
下一步就是提取二維碼裏面的payCode
,我使用的是草料二維碼識別:
鏈接以下:ui
獲得payCode
就能夠實際使用了。
商家收款的前提是你開通了商家收款的功能(我忘記我何時開通了,反正就是開通了),你能夠登陸網頁支付寶,而後依次點擊:商家服務 --> 查看商戶收款碼 --> 保存收款二維碼。
最後仍是須要執行上面同樣的步驟,從收款碼中提取出payCode
。
商家的收款界面和普通的轉帳付款界面略有不一樣,它是一個 Web 頁面:(以下圖)
微信的體驗不夠好,目前只能說勉強能用。
原理是利用微信的二維碼掃描支付,在啓動的時候將本身的二維碼放入相冊中,並通知系統更新相冊,這樣用戶就能夠選擇第一張圖片,而後識別圖片中的二維碼最後完成支付操做。
雖然開發者的操做變少了,可是用戶的操做變多了。對用戶來講體驗就變差了。
保存的二維碼圖片比較大(我保存的119KB)須要壓縮裁剪才能放入app中,獲取從服務器獲取。
若是本文對你有幫助,能夠打賞支持。**演示項目裏就能夠直接打賞就能夠了 O(∩_∩)O~~**