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

首先是在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. express,中间件(body-parser),req.body获取不到参数(含postman发请求的方法)

    问题描述: 最近在做毕设,express 里边的中间件(body-parser)失效,req.body获取不到任何值,req.query能获取到值.一开始加body-parser中间件是有用的,直到昨 ...

  2. VMWare中的三种联网模式图解

    网络基础及局域网配置 1.简单的局域网结构 2.VMWare中的三种联网模式 NAT模式 桥接模式 VMnet1

  3. StackExchange.Redis 官方文档(六) PipelinesMultiplexers

    原文:StackExchange.Redis 官方文档(六) PipelinesMultiplexers 流水线和复用 糟糕的时间浪费.现代的计算机以惊人的速度产生大量的数据,而且高速网络通道(通常在 ...

  4. ex.Message "ORA-01691: Lob 段 USER_MURPHY.SYS_LOB0000093717C00006$$ 无法通过 1024 (在表空间 ZJHH 中) 扩展"

    Oracle,往数据库里导入dmp的时候报错:ORA-01691:Lob 段 无法通过8192(在表空间TS_SI中)扩展 解决方案1: 原因:所创建的表空间不足. 创建一个可拓展的表空间 creat ...

  5. swift开发网络篇—NSURLConnection基本使用

    iOS开发网络篇—NSURLConnection基本使用 一.NSURLConnection的常用类 (1)NSURL:请求地址 (2)NSURLRequest:封装一个请求,保存发给服务器的全部数据 ...

  6. Oracle Web链接客户端

    TreeSoft数据库管理系统 http://www.treesoft.cn        

  7. UVA 11178 - Morley's Theorem 向量

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  8. ImageView的圆角半径

    // 设置imageview的圆角半径 UIImageView *imageView = (UIImageView *)[cell viewWithTag:tag]; imageView.layer. ...

  9. Delegates, Events and Singletons with Unity3D – C#

     在这里我将演示怎样创建代表. 事件和Singletons 在一起工作. 本教程为 Unity3D 编写. 我想知道这为什么?作为一个年轻的自学程序猿,我常常发现自己写tons 和布尔的语句,以确 ...

  10. bootstrap课程1 bootstrap为什么这么火

    bootstrap课程1 bootstrap为什么这么火 一.总结 一句话总结:响应式,样式多,功能多. 1.bootstrap通过什么药实现响应式? 响应式web布局是让用户通过不同尺寸的浏览器都可 ...