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

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

作者: 机智的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