今天看代码,看到以前项目的微信支付功能,想做一下记录

首先是在application类里面定义


  1. public static IWXAPI MSGAPI;
  2. public static final String WX_APPID="xxxxxxxxxxxxxxxxxxx";//你的应用从官方网站申请到的合法appId

将该app注册到微信


  1. MSGAPI=WXAPIFactory.createWXAPI(applicationContext,WX_APPID,false);
  2. MSGAPI.registerApp(WX_APPID);

首先支付功能


  1. if(!ApplicationXpClient.MSGAPI.isWXAppInstalled()){
  2. Log.d("weixinPay","未安装微信");
  3. return;
  4. }
  5. if(!ApplicationXpClient.MSGAPI.isWXAppSupportAPI()){
  6. Log.d("weixinPay","版本不支持");
  7. return;
  8. }
  9. PayReq request=new PayReq();//weixinPayData是后台返回的类
  10. request.appId=ApplicationXpClient.WX_APPID;
  11. request.partnerId="1387300802";
  12. request.prepayId=weixinPayData.getPrepay_id();
  13. request.packageValue="Sign=WXPay";
  14. request.nonceStr=weixinPayData.getNonce_str();
  15. request.timeStamp=weixinPayData.getDateTime();
  16. request.sign=weixinPayData.getSign();
  17. ApplicationXpClient.MSGAPI.sendReq(request);

然后是分享功能


  1. int WX_THUMB_SIZE=120;
  2. if(!ApplicationXpClient.MSGAPI.isWXAppInstalled()){
  3. Log.d("weixinPay","未安装微信");
  4. return;
  5. }
  6. if(!ApplicationXpClient.MSGAPI.isWXAppSupportAPI()){
  7. Log.d("weixinPay","版本不支持");
  8. return;
  9. }
  10. //初始化一个WXWebpageObject对象,填写url
  11. WXWebpageObject webpage=new WXWebpageObject();
  12. webpage.webpageUrl="www.pooai.com";//这里用小普马桶官网做推广
  13. //用WXWebpageObject对象初始化一个WXMediaMessage对象,填写标题、描述
  14. WXMediaMessage msg=new WXMediaMessage(webpage);
  15. msg.title="小普未来科技";
  16. msg.description="一款来自未来的云健康智能马桶";
  17. Bitmap thumb=BitmapFactory.decodeResource(getResources(),R.drawable.xiaopu);
  18. Bitmap thumbBmp=Bitmap.createScaledBitmap(thumb,WX_THUMB_SIZE,WX_THUMB_SIZE,true);
  19. thumb.recycle();
  20. msg.thumbData=bmpToByteArray(thumbBmp,true);
  21. //构造一个Req
  22. SendMessageToWX.Req req=new SendMessageToWX.Req();
  23. req.transaction=String.valueOf(System.currentTimeMillis());
  24. req.message=msg;
  25. req.scene=SendMessageToWX.Req.WXSceneSession;//分享给朋友
  26. //req.scene = SendMessageToWX.Req.WXSceneTimeline;//分享到朋友圈
  27. ApplicationXpClient.MSGAPI.sendReq(req);
  28. public static byte[]bmpToByteArray(final Bitmap bmp,final boolean needRecycle){
  29. ByteArrayOutputStream output=new ByteArrayOutputStream();
  30. bmp.compress(CompressFormat.PNG,100,output);
  31. if(needRecycle){
  32. bmp.recycle();
  33. }
  34. byte[]result=output.toByteArray();
  35. try{
  36. output.close();
  37. }catch(Exception e){
  38. e.printStackTrace();
  39. }
  40. return result;
  41. }

IWXAPI的使用,发布分享和支付的更多相关文章

  1. Android调用微信登陆、分享、支付

    前言:用了微信sdk各种痛苦,感觉比qq sdk调用麻烦多了,回调过于麻烦,还必须要在指定包名下的actvity进行回调,所以我在这里写一篇博客,有这个需求的朋友可以借鉴一下,以后自己别的项目有用到也 ...

  2. 【原创分享·微信支付】 C# MVC 微信支付教程系列之扫码支付

    微信支付教程系列之扫码支付                  今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添 ...

  3. 【原创分享·微信支付】 C# MVC 微信支付教程系列之公众号支付

    微信支付教程系列之公众号支付         今天,我们接着讲微信支付的系列教程,前面,我们讲了这个微信红包和扫码支付.现在,我们讲讲这个公众号支付.公众号支付的应用环境常见的用户通过公众号,然后再通 ...

  4. 【原创分享·微信支付】C# MVC 微信支付之微信模板消息推送

    微信支付之微信模板消息推送                    今天我要跟大家分享的是“模板消息”的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不 ...

  5. Android微信登录、分享、支付

    转载需要著名出处: http://blog.csdn.net/lowprofile_coding/article/details/78004224 之前写过微信登录分享支付第一版: http://bl ...

  6. 【分享·微信支付】 C# MVC 微信支付教程系列之公众号支付

    微信支付教程系列之公众号支付           今天,我们接着讲微信支付的系列教程,前面,我们讲了这个微信红包和扫码支付.现在,我们讲讲这个公众号支付.公众号支付的应用环境常见的用户通过公众号,然后 ...

  7. 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付

    前言 最近有点空余时间,所以,就研究了一下APP支付.前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究.然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还 ...

  8. 【原创分享·微信支付】C# MVC 微信支付教程系列之现金红包

            微信支付教程系列之现金红包           最近最弄这个微信支付的功能,然后扫码.公众号支付,这些都做了,闲着无聊,就看了看微信支付的其他功能,发现还有一个叫“现金红包”的玩意,想 ...

  9. 解决Axure发布分享预览的3个方法

    公司的同事制作的一个产品原型,要发给我,我当时正在客户这里,电脑上并没有Axure,客户又催得急,感到一阵无奈.这次回来之后,经过一番摸索,发现还是有办法的.这里给大家分享一下Axure发布分享预览的 ...

随机推荐

  1. 语言模型(Language Modeling)与统计语言模型

    1. n-grams 统计语言模型研究的是一个单词序列出现的概率分布(probability distribution).例如对于英语,全体英文单词构成整个状态空间(state space). 边缘概 ...

  2. Js里面的arguments

    了解这个对象之前先来认识一下javascript的一些功能: 其实Javascript并没有重载函数的功能,但是Arguments对象能够模拟重载.Javascrip中国每个函数都会有一个Argume ...

  3. Loadrunner11--输入license后提示违反许可证安全,禁止操作

    安装中文补丁包后,重新把mlr5lprg.dll.lm70.dll覆盖LR11安装目录下“bin”文件夹下mlr5lprg.dll.lm70.dll.运行deletelicense.exe.重新用管理 ...

  4. UVA 11859 - Division Game

    看题传送门 题目大意 有一个n * m的矩阵,每个元素均为2~10000之间的正整数,两个游戏者轮流操作.每次可选一行中的1个或者多个大于1的整数把它们中的每个数都变成它的某个真因子,比如12可以变成 ...

  5. jQuery插件AjaxFileUpload实现ajax文件上传时老是运行error方法 问题原因

    今天在用jQuery插件AjaxFileUpload实现ajax文件上传时,遇到一个问题,如图: 老是运行error.无法运行succes方法,追踪ajaxfileupload.js源代码发现: wa ...

  6. js进阶 12-6 监听鼠标滚动事件和窗口改变事件怎么写

    js进阶 12-6 监听鼠标滚动事件和窗口改变事件怎么写 一.总结 一句话总结:滚动事件scroll(),浏览器窗口调整监听resize(),思考好监听对象. 1.滚动事件scroll()的监听对象是 ...

  7. 安装GDB和GDBSERVER

    安装GDB和GDBSERVER 转自http://www.360doc.com/content/10/0407/17/155970_21971613.shtml 把GDBSERVER装入文件系统 转自 ...

  8. win32程序如何改变字体大小颜色

    //设定文字大小和颜色 LOGFONT logfont; //改变输出字体 ZeroMemory(&logfont, sizeof(LOGFONT)); logfont.lfCharSet = ...

  9. linux系统 wm9713声卡配置 记录

    近期在搞wm9713的外音播放和耳机的检測,搞了几天不负所望,最终搞定了.现记录例如以下,开发板为real210 v6.2版本号: 假设要让外音输出,那么确保wm9713的0x1c寄存器的值为0x12 ...

  10. javascript怎么获取指定url网页中的内容

    javascript怎么获取指定url网页中的内容 一.总结 一句话总结:推荐jquery中ajax,简单方便. 1.js能跨域操作么? javascript出于安全机制不允许跨域操作的. 二.用ph ...