美文网首页安卓开发学习安卓开发安卓开发
安卓个人开发者如何使用微信支付做打赏捐赠

安卓个人开发者如何使用微信支付做打赏捐赠

作者: 机智的Harbor | 来源:发表于2017-06-11 10:19 被阅读150次

微信支付来打赏,一直是个人开发者的心痛之地。

微信的很多Activity都是只能在它自己app的uid下启动,其他app调用不了,让用户主动截取二维码,然后扫描,实在是不明智之举,用户体验不太好。

一直在苦苦思索怎么有更简单的方法。

刚刚看到黑域使用的一种办法,比较具有可行性,就借鉴了过来[w再见][w再见]

原理是利用微信扫码快捷方式(我怎么就想不到)

首先利用Dialog提示用户

二维码从哪里来呢? 我的解决方案是,放到服务器上,来获取并保存下来

支付方式按钮

然后提用户打开微信的扫一扫

通过快捷方式的方式进入扫一扫

保存完了要发个广播通知一下,要不然微信、图库上面找不到那张二维码

发广播的代码

然后就能愉快便捷地开启捐赠之旅了。[w调皮][w调皮]

附源代码:

private void gotoWeChat() {
    Intent intent = new Intent("com.tencent.mm.action.BIZSHORTCUT");
    intent.setPackage("com.tencent.mm");
    intent.putExtra("LauncherUI.From.Scaner.Shortcut", true);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
            Intent.FLAG_ACTIVITY_CLEAR_TOP |
            Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
    try {
        startActivity(intent);
    }catch (ActivityNotFoundException e){
        Toast.makeText(this, "你好像没有安装微信", Toast.LENGTH_SHORT).show();
    }
}
private void sendPictureStoredBroadcast(File file) {
    Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
    Uri uri = Uri.fromFile(file);
    intent.setData(uri);
    sendBroadcast(intent);
}

相关文章

网友评论

  • Napsterwan:赞一个,正好公司要采用这种支付模式:+1:
  • 风化成石:Intent intent = new Intent("com.tencent.mm.action.BIZSHORTCUT");
    intent.putExtra("LauncherUI.From.Scaner.Shortcut", true);
    这两个是怎么来的啊?是什么意思啊? 我可以直接跳转到从相册选取二维码的页面吗?
    风化成石:@机智的Harbor 明白了,谢谢你的解答.
    机智的Harbor: @风化成石 这两个来源是反编译找出来的,因为微信的几乎所有activity都只能由它自己启动,但是市面上确实是有直接调用微信二维码界面的app,所以反编译找到了精髓所在,利用传值的方式告诉微信,我是特定的程序,请求你的扫描二维码权限。不能跳转到选取图片的那个界面,微信没有提供那样的接口。

本文标题:安卓个人开发者如何使用微信支付做打赏捐赠

本文链接:https://www.haomeiwen.com/subject/cjkhqxtx.html