Android APP 內部捐贈實現(支付寶&微信)
目前支持 支付寶和 微信。
項目地址:https://github.com/didikee/AndroidDonate
https://play.google.com/store/apps/details?id=com.didikee.donate.sample
掃描二維碼下載demo程序
快速集成
**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,所以不要忘記加上權限:
<!-- 微信需要往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
。
支付寶比微信好用、靈活、體驗好,具體體現在 支付寶可以自定義金額收款,也可以生成商家收款碼(商家收款未測試)。
從支付寶首頁頂部的收款進入:(如圖)
你可以自主選擇設置金額和備注,然后保存二維碼圖片。
下一步就是提取二維碼里面的payCode
,我使用的是草料二維碼識別:
連接如下:
得到payCode
就可以實際使用了。
附加 -- 商家收款
商家收款的前提是你開通了商家收款的功能(我忘記我什么時候開通了,反正就是開通了),你可以登錄網頁支付寶,然后依次點擊:商家服務 --> 查看商戶收款碼 --> 保存收款二維碼。
最后還是需要執行上面一樣的步驟,從收款碼中提取出payCode
。
商家的收款界面和普通的轉賬付款界面略有不同,它是一個 Web 頁面:(如下圖)
關於微信捐贈
微信的體驗不夠好,目前只能說勉強能用。
原理是利用微信的二維碼掃描支付,在啟動的時候將自己的二維碼放入相冊中,並通知系統更新相冊,這樣用戶就可以選擇第一張圖片,然后識別圖片中的二維碼最后完成支付操作。
雖然開發者的操作變少了,但是用戶的操作變多了。對用戶來說體驗就變差了。
附加 -- 二維碼圖片大小
保存的二維碼圖片比較大(我保存的119KB)需要壓縮裁剪才能放入app中,獲取從服務器獲取。
最后
如果本文對你有幫助,可以打賞支持。演示項目里就可以直接打賞就可以了 O(∩_∩)O~~