如何在app中打开支付宝进行打赏开发者
来源:互联网 发布:中国药科大学网络教育 编辑:程序博客网 时间:2024/05/29 03:40
COPY一下这个类:
public class AlipayZeroSdk { // 支付宝包名 private static final String ALIPAY_PACKAGE_NAME = "com.eg.android.AlipayGphone"; // 旧版支付宝二维码通用 Intent Scheme Url 格式 private static final String INTENT_URL_FORMAT = "intent://platformapi/startapp?saId=10000007&" + "clientVersion=3.7.0.0718&qrcode=https%3A%2F%2Fqr.alipay.com%2F{urlCode}%3F_s" + "%3Dweb-other&_t=1472443966571#Intent;" + "scheme=alipayqr;package=com.eg.android.AlipayGphone;end"; /** * 打开转账窗口 * 旧版支付宝二维码方法,需要使用 https://fama.alipay.com/qrcode/index.htm 网站生成的二维码 * 这个方法最好,但在 2016 年 8 月发现新用户可能无法使用 * * @param activity Parent Activity * @param urlCode 手动解析二维码获得地址中的参数,例如 https://qr.alipay.com/aehvyvf4taua18zo6e 最后那段 * @return 是否成功调用 */ public static boolean startAlipayClient(Activity activity, String urlCode) { return startIntentUrl(activity, INTENT_URL_FORMAT.replace("{urlCode}", urlCode)); } /** * 打开 Intent Scheme Url * * @param activity Parent Activity * @param intentFullUrl Intent 跳转地址 * @return 是否成功调用 */ public static boolean startIntentUrl(Activity activity, String intentFullUrl) { try { Intent intent = Intent.parseUri( intentFullUrl, Intent.URI_INTENT_SCHEME ); activity.startActivity(intent); return true; } catch (URISyntaxException e) { e.printStackTrace(); return false; } catch (ActivityNotFoundException e) { e.printStackTrace(); return false; } } /** * 判断支付宝客户端是否已安装,建议调用转账前检查 * @param context Context * @return 支付宝客户端是否已安装 */ public static boolean hasInstalledAlipayClient(Context context) { PackageManager pm = context.getPackageManager(); try { PackageInfo info = pm.getPackageInfo(ALIPAY_PACKAGE_NAME, 0); return info != null; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); return false; } } /** * 获取支付宝客户端版本名称,作用不大 * @param context Context * @return 版本名称 */ public static String getAlipayClientVersion(Context context) { PackageManager pm = context.getPackageManager(); try { PackageInfo info = pm.getPackageInfo(ALIPAY_PACKAGE_NAME, 0); return info.versionName; } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); return null; } } /** * 打开支付宝扫一扫界面 * @param context Context * @return 是否成功打开 Activity */ public static boolean openAlipayScan(Context context) { try { Uri uri = Uri.parse("alipayqr://platformapi/startapp?saId=10000007"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); if (context instanceof TileService) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { ((TileService) context).startActivityAndCollapse(intent); } } else { context.startActivity(intent); } return true; } catch (Exception e) { return false; } } /** * 打开支付宝付款码 * @param context Context * @return 是否成功打开 Activity */ public static boolean openAlipayBarcode(Context context) { try { Uri uri = Uri.parse("alipayqr://platformapi/startapp?saId=20000056"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); if (context instanceof TileService) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { ((TileService) context).startActivityAndCollapse(intent); } } else { context.startActivity(intent); } return true; } catch (Exception e) { return false; } }}
首先你要准备一张自己二维码收款的图片,打开支付宝,右上角+号,收钱,得到二维码后解析出一个地址,我们需要的就是它~
之后就是关键了:
在你的组件点击事件,把我们刚刚解析的地址附上就可以了
case R.id.nav_pay:// 捐赠开发者 // HTTPS://QR.ALIPAY.COM/FKX04844O7GX5QDURDKJ09 --------2快\ //HTTPS://QR.ALIPAY.COM/FKX089840DT0DYAC0370B6 ---------自定义金额 if (AlipayZeroSdk.hasInstalledAlipayClient(HomeActivity.this)) { AlipayZeroSdk.startAlipayClient(HomeActivity.this, "FKX089840DT0DYAC0370B6"); } else { SnackbarUtils.showSnackbar(HomeActivity.this,"谢谢,您没有安装支付宝客户端", true); } break;
哦了~试试吧
阅读全文
2 0
- 如何在app中打开支付宝进行打赏开发者
- 如何在自己的应用中打开支付宝客户端
- 看看安卓开发者在APP推广路途中是如何被金山“恶霸”所“黑打”的!
- mac中如何在一个app中打开另一个app
- 关于支付宝集成在APP中
- 在android的webview中跳转到微信支付和支付宝app支付
- 如何在laravel/lumen中集成支付宝支付
- 如何在Android中集成支付宝
- 在html中打开app
- 在App中打开淘宝
- 在Webview中打开app
- 在Android开发当中如何在一个app中打开淘宝app
- 在Android 4.2中打开"开发者选项"
- Android App上采用支付宝进行快捷支付
- 在Unity中实现首次打开APP进行教学的功能
- HTML5打开本地app应用的方法,如果你的手机上安装App,就会自动打app,否则在页面上会提示你进行下载app
- app支付--支付宝支付
- 支付-支付宝APP支付
- Leo_CT's Box
- webshell
- 基于Spring task注解方式配置任务
- opencv2.4.9+VS2013中imread和cvLoadimage的使用区别
- Matlab函数meshgrid的作用
- 如何在app中打开支付宝进行打赏开发者
- 【怎样写代码】小技巧 -- 关于引用类型的两种转换方式
- 设计模式之观察者模式
- Android 基础篇(三)细节
- Android玩 --- Material Design(1) --- Recycleview的装饰(2)
- C++高精度算法之比大小
- eclipse安装hibernate插件
- 【Quartz】 JobListener、Triggerlistener、SchedulerListener介绍与使用
- 一些建站过程的图片