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

首先是在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. 微信支付v2开发(7) 告警通知

    本文介绍微信支付中如何获得告警通知. 一.告警通知 为了及时通知商户异常,提高商户在微信平台的服务质量.微信后台会向商户推送告警通知,包括发货延迟.调用失败.通知失败等情况,通知的地址是商户在申请支付 ...

  2. Linux常用命令及解析

    基本日常命令 init 3 (进入命令行页面) steup (设置网络) exit (退出用户) pwd(查看当前所在目录) date(查看当前系统时间) 举例:(date +%Y-%m-%d)以年月 ...

  3. 安装GDB和GDBSERVER

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

  4. fatal error C1859的有效解决办法

    作者:朱金灿来源:http://blog.csdn.net/clever101 在服务器(操作系统为Widows Server2008)上使用VS C++2008编译工程,总是出现这样一个错误:fat ...

  5. [疯狂Java]JDBC:事务管理、中间点、批量更新

    1. 数据库事务的概念:     1) 事务的目的就是为了保证数据库中数据的完整性.     2) 设想一个银行转账的过程,假设分两步,第一步是A的账户-1000,第二步是B的账户+1000.这两个动 ...

  6. [Javascript] Validate Data with the Every() Method

    The every method returns true or false based on whether or not every item in the array passes the co ...

  7. Spring Cloud底层原理

    目录 一.业务场景介绍 二.Spring Cloud核心组件:Eureka 三.Spring Cloud核心组件:Feign 四.Spring Cloud核心组件:Ribbon 五.Spring Cl ...

  8. VS2008的C++TR1库已经支持正则表达式

    作者:朱金灿 来源:http://blog.csdn.net/clever101 发现VS2008的C++ TR1库已经支持正则表达式了(注意装了VS 2008sp1采用TR1库的).下面简单做个测试 ...

  9. android 发送http请求

    好久没写博客了,由于公司要做android,笔者也是第一次接触. 这是在项目中遇到一个比較麻烦的问题.记录下来备忘(本人刚接触.有不正确的地方请不吝赐教). 发送请求的代码: package com. ...

  10. Android JNI编程(一)——JNI概念以及C语言Dev-C++开发环境搭建、编写HelloWorld

    版权声明:本文出自阿钟的博客,转载请注明出处:http://blog.csdn.net/a_zhon/. 目录(?)[+] 一:JNI是什么呢? JNI:JNI是JavaNative Interfac ...