Android APP 内部捐赠实现(支付宝微信)
![](https://upload.jianshu.io/users/upload_avatars/1489435/1740d8c9ce2a.png?imageMogr2/auto-orient/strip%7CimageView2/1/w/96/h/96)
Android APP 内部捐赠实现(支付宝&微信)
目前支持 支付宝和 微信。
项目地址:https://github.com/didikee/AndroidDonate
从谷歌Play下载Demo:https://play.google.com/store/apps/details?id=com.didikee.donate.sample
扫描二维码下载demo程序
![](https://upload-images.jianshu.io/upload_images/1489435-c9bce1f1fcb718ee.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/280)
快速集成
**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
。
支付宝比微信好用、灵活、体验好,具体体现在 支付宝可以自定义金额收款,也可以生成商家收款码(商家收款未测试)。
从支付宝首页顶部的收款进入:(如图)
![](https://upload-images.jianshu.io/upload_images/1489435-0ea56727a501a21a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
你可以自主选择设置金额和备注,然后保存二维码图片。
下一步就是提取二维码里面的payCode
,我使用的是草料二维码识别:
连接如下:
草料二维码在线识别http://cli.im/deqr
得到payCode
就可以实际使用了。
附加 -- 商家收款
商家收款的前提是你开通了商家收款的功能(我忘记我什么时候开通了,反正就是开通了),你可以登录网页支付宝,然后依次点击:商家服务 --> 查看商户收款码 --> 保存收款二维码。
最后还是需要执行上面一样的步骤,从收款码中提取出payCode
。
商家的收款界面和普通的转账付款界面略有不同,它是一个 Web 页面:(如下图)
![](https://upload-images.jianshu.io/upload_images/1489435-779cc7d9d145e43b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
关于微信捐赠
微信的体验不够好,目前只能说勉强能用。
原理是利用微信的二维码扫描支付,在启动的时候将自己的二维码放入相册中,并通知系统更新相册,这样用户就可以选择第一张图片,然后识别图片中的二维码最后完成支付操作。
虽然开发者的操作变少了,但是用户的操作变多了。对用户来说体验就变差了。
附加 -- 二维码图片大小
保存的二维码图片比较大(我保存的119KB)需要压缩裁剪才能放入app中,获取从服务器获取。
![](https://upload-images.jianshu.io/upload_images/1489435-bed60c48c05d217d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
最后
如果本文对你有帮助,可以打赏支持。演示项目里就可以直接打赏就可以了 O(∩_∩)O~~
不打赏没关系,点个赞再走嘛~(๑•̀ㅁ•́๑)✧
Android APP 内部捐赠实现(支付宝微信)相关推荐
- Android App接入支付功能——支付宝支付
接入前准备 接入APP支付能力前,开发者需要完成以下前置步骤. 本文档展示了如何从零开始,使用支付宝开放平台服务端 SDK 快速接入App支付产品,完成与支付宝对接的部分. 接入准备--支付宝开发能力 ...
- Android 自有App内部跳转到微信小程序的方法
1.在 build.gradle 文件中,添加如下依赖即可: dependencies {implementation 'com.tencent.mm.opensdk:wechat-sdk-andro ...
- 用hbuilder打包php项目,hbuilder打包人人商城app教程方法 支持支付宝微信原生支付...
使用hbuilder打包人人商城app 方法支持微信支付宝原生支付 介绍 人人商城打包使用hbuilder打包app需要的文件,目前支持微信原生支付,支付宝原生支付,原生退出app ,还没有写分享和原 ...
- Android App内部更新(最新) 各安卓版本适配
Android 内部更新 各安卓版本适配 一:前言 在国内,app在线更新是一个必须要求.新版本发布时.用户进入我们的app,就会弹出更新提示框: 二:开发 在线更新分为以下几个步骤: 1:通过接口获 ...
- android app 清理缓存图片,支付宝APP怎么清理缓存 支付宝安卓版缓存清理方法
当今社会支付方式已经越来越便捷化了,普通的现金支付方式已经逐渐被人们放弃,现在大部分朋友们都会使用支付宝APP进行手机移动支付.相信大家都知道,这款软件除了支付功能以外,还有许多其他功能,而这些功能往 ...
- 【Android】Android App打开手机QQ、微信等应用
分享可能会用到一些第三方的分享,但是,有时候,我们也可以将一些文本内容复制到粘贴板,然后打开手机QQ,或者是微信手动粘贴进行分享,现在分享一下如何打开手机QQ等应用(效果可以实现,有一些注释是个人理解 ...
- Android app 内部在线升级
app在线更新是一个比较常见需求,新版本发布时,进入app,会弹出更新提示框,第一时间更新新版本app.在线更新分为以下几个步骤: 1.请求api 2.检查版本 3.下载最新版本apk 4.安装apk ...
- android app内部打开word pdf .doc类型文件的两种方式
1.是集成了x5内核的webview使用的是腾讯的tbs 这种的直接上github找一个demo集成一下就可以了 2.直接接入第三方 sdk进行开发 https://github.com/Office ...
- Android app内部下载安装
// 3.下载成功,开始安装,兼容8.0安装位置来源的权限public static void installApkO(Activity context, String downloadApkPath ...
- android 切换语言重启应用程序,不重启应用,android APP内部国际化
当前android的语言切换,很多项目中都是切换以后需要重启项目,这样的体验是不好的,如何实现当前界面切换,立即能看到效果? 目前项目中只支持中文和英文,具体实现: 在BaseActivity中: 在 ...
最新文章
- JavaScript版几种常见排序算法
- 第一章 TensorFlow基础——python语法(一)
- 运维学习之进程的定义及其命令的使用
- 简单了解static
- 《如何搭建小微企业风控模型》第十节 单变量分析(下)节选
- 入侵韩国某购物网并提权
- FlasCC例子研究之hellointerop
- [2018.07.10 T1]叠盒子
- 计算机二级vfp教程云盘,全国计算机等级考试二级VFP教程.doc
- WEBGIS开发 CityEngine使用 Cesium白膜纹理 夜景效果 城市模型展示
- mysql2008安装失败_SQL Server 2008 安装失败问题总结
- vs2003常见问题
- 云计算机房架构图,云计算架构技术与实践
- FFmpeg开发(1)从mp4中提取aac音频
- 第二次数学建模训练题
- 模型转换:pth转onnx
- 企业视频直播如何嵌入企业微信公众号?
- R语言之一元线性回归xt2.15
- linux 工具——终端分屏与vim分屏
- 聊天室登录php,聊天室技术(二)-- 登录_PHP
热门文章
- Python描写叙述符(descriptor)解密
- Autodesk_Revit2022安装图文教程_Revit2022建筑信息模型BIM软件图文教程
- js 求最大公约比例、最大公约数、最小公倍数
- CMake错误: Imported targets not available for * version, Could NOT find *, ... 解决
- 3※、对象流、输出流、RandomAccessFile、序列化和反序列化、头部信息的获取、NotSerializableException解决和生成序列化版本号serialVersionUID
- 2022年一级建造师考试《建筑工程》模拟题及答案
- ​愉快地迁移到Python3
- 12篇真正改变世界的博士论文
- Python实验七 文件的使用及图像处理
- 域名备案完后网站部署