IWXAPI的使用,发布分享和支付
今天看代码,看到以前项目的微信支付功能,想做一下记录
首先是在application类里面定义
-
public static IWXAPI MSGAPI;
-
public static final String WX_APPID="xxxxxxxxxxxxxxxxxxx";//你的应用从官方网站申请到的合法appId
将该app注册到微信
-
MSGAPI=WXAPIFactory.createWXAPI(applicationContext,WX_APPID,false);
-
MSGAPI.registerApp(WX_APPID);
首先支付功能
-
if(!ApplicationXpClient.MSGAPI.isWXAppInstalled()){
-
Log.d("weixinPay","未安装微信");
-
return;
-
}
-
if(!ApplicationXpClient.MSGAPI.isWXAppSupportAPI()){
-
Log.d("weixinPay","版本不支持");
-
return;
-
}
-
PayReq request=new PayReq();//weixinPayData是后台返回的类
-
request.appId=ApplicationXpClient.WX_APPID;
-
request.partnerId="1387300802";
-
request.prepayId=weixinPayData.getPrepay_id();
-
request.packageValue="Sign=WXPay";
-
request.nonceStr=weixinPayData.getNonce_str();
-
request.timeStamp=weixinPayData.getDateTime();
-
request.sign=weixinPayData.getSign();
-
ApplicationXpClient.MSGAPI.sendReq(request);
然后是分享功能
-
int WX_THUMB_SIZE=120;
-
if(!ApplicationXpClient.MSGAPI.isWXAppInstalled()){
-
Log.d("weixinPay","未安装微信");
-
return;
-
}
-
if(!ApplicationXpClient.MSGAPI.isWXAppSupportAPI()){
-
Log.d("weixinPay","版本不支持");
-
return;
-
}
-
//初始化一个WXWebpageObject对象,填写url
-
WXWebpageObject webpage=new WXWebpageObject();
-
-
webpage.webpageUrl="www.pooai.com";//这里用小普马桶官网做推广
-
-
//用WXWebpageObject对象初始化一个WXMediaMessage对象,填写标题、描述
-
WXMediaMessage msg=new WXMediaMessage(webpage);
-
msg.title="小普未来科技";
-
msg.description="一款来自未来的云健康智能马桶";
-
Bitmap thumb=BitmapFactory.decodeResource(getResources(),R.drawable.xiaopu);
-
Bitmap thumbBmp=Bitmap.createScaledBitmap(thumb,WX_THUMB_SIZE,WX_THUMB_SIZE,true);
-
thumb.recycle();
-
msg.thumbData=bmpToByteArray(thumbBmp,true);
-
-
//构造一个Req
-
SendMessageToWX.Req req=new SendMessageToWX.Req();
-
req.transaction=String.valueOf(System.currentTimeMillis());
-
req.message=msg;
-
req.scene=SendMessageToWX.Req.WXSceneSession;//分享给朋友
-
//req.scene = SendMessageToWX.Req.WXSceneTimeline;//分享到朋友圈
-
ApplicationXpClient.MSGAPI.sendReq(req);
-
-
public static byte[]bmpToByteArray(final Bitmap bmp,final boolean needRecycle){
-
ByteArrayOutputStream output=new ByteArrayOutputStream();
-
bmp.compress(CompressFormat.PNG,100,output);
-
if(needRecycle){
-
bmp.recycle();
-
}
-
byte[]result=output.toByteArray();
-
try{
-
output.close();
-
}catch(Exception e){
-
e.printStackTrace();
-
}
-
return result;
-
}
IWXAPI的使用,发布分享和支付的更多相关文章
- Android调用微信登陆、分享、支付
前言:用了微信sdk各种痛苦,感觉比qq sdk调用麻烦多了,回调过于麻烦,还必须要在指定包名下的actvity进行回调,所以我在这里写一篇博客,有这个需求的朋友可以借鉴一下,以后自己别的项目有用到也 ...
- 【原创分享·微信支付】 C# MVC 微信支付教程系列之扫码支付
微信支付教程系列之扫码支付 今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添 ...
- 【原创分享·微信支付】 C# MVC 微信支付教程系列之公众号支付
微信支付教程系列之公众号支付 今天,我们接着讲微信支付的系列教程,前面,我们讲了这个微信红包和扫码支付.现在,我们讲讲这个公众号支付.公众号支付的应用环境常见的用户通过公众号,然后再通 ...
- 【原创分享·微信支付】C# MVC 微信支付之微信模板消息推送
微信支付之微信模板消息推送 今天我要跟大家分享的是“模板消息”的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不 ...
- Android微信登录、分享、支付
转载需要著名出处: http://blog.csdn.net/lowprofile_coding/article/details/78004224 之前写过微信登录分享支付第一版: http://bl ...
- 【分享·微信支付】 C# MVC 微信支付教程系列之公众号支付
微信支付教程系列之公众号支付 今天,我们接着讲微信支付的系列教程,前面,我们讲了这个微信红包和扫码支付.现在,我们讲讲这个公众号支付.公众号支付的应用环境常见的用户通过公众号,然后 ...
- 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付
前言 最近有点空余时间,所以,就研究了一下APP支付.前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究.然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还 ...
- 【原创分享·微信支付】C# MVC 微信支付教程系列之现金红包
微信支付教程系列之现金红包 最近最弄这个微信支付的功能,然后扫码.公众号支付,这些都做了,闲着无聊,就看了看微信支付的其他功能,发现还有一个叫“现金红包”的玩意,想 ...
- 解决Axure发布分享预览的3个方法
公司的同事制作的一个产品原型,要发给我,我当时正在客户这里,电脑上并没有Axure,客户又催得急,感到一阵无奈.这次回来之后,经过一番摸索,发现还是有办法的.这里给大家分享一下Axure发布分享预览的 ...
随机推荐
- synchronized和AtomicInteger解决并发问题的性能比较
AtomicInteger,一个提供原子操作的Integer的类.在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字.而volatile ...
- js进阶 13-4 jquery自定义动画animate()如何使用
js进阶 13-4 jquery自定义动画animate()如何使用 一.总结 一句话总结:animate(params,[speed],[easing],[fn]),参数:params:一组包含作为 ...
- 常用到的Linux命令
记录一下日常用到的Linux命令,就当做日志了 1.查看Linux 端口号 netstat -apn | grep 80 2.杀死进程 kill -s 9 pid (tomcat 启动不起来有可 ...
- 【Codeforces Round #445 (Div. 2) C】 Petya and Catacombs
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 看看时间戳为i的点有哪些. 每次优先用已经访问过的点. 如果不行就新创一个点. 注意新创点的时间戳也是i. [代码] #includ ...
- java中的switch用String作为条件
在开发java程序的过程中,我们遇到了条件推断首选就是switch,可是java中的switch功能不支持字符串作为条件.这时我们该怎么办呢? --使用枚举. 一.枚举简单了解 1.enum是一 ...
- vue2.0 踩坑记录之组件
- did you register the component correctly? For recursive components, make sure to provide the " ...
- stm32的ADC左右对齐
- 【例题5-5 UVA 12096 】The SetStack Computer
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用set来解决这个问题. 考虑如何表示 { {{}} }这个集合 我们可以把{}这个集合和一个数字映射->1 然后把1加入到某 ...
- ios本地相册 照像 本地视频
-(IBAction)btnClick{ UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate: ...
- MongoDB 管理
1.给数据库增加分片功能 mongos> use admin mongos> db.runCommand({enablesharding:"cipnet"}) mong ...