前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android 调用微信小程序支付badparam_微信定时发消息

Android 调用微信小程序支付badparam_微信定时发消息

作者头像
全栈程序员站长
发布2022-09-27 11:00:15
7980
发布2022-09-27 11:00:15
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

最近一项目需要添加微信的分享:朋友、朋友圈。

原本以为挺简单的一事,无非就是去官网下个Demo,集成到自己项目中,可以分分钟搞定,结果这帮写文档的坑爹玩意,愣是浪费了我N多时间,好了吐槽完毕,接下来分享下此次调用微信中遇到的问题和解决方法:

首先第一个问题:死活调不出微信客户端

原因:是没有按照所谓的官方说明来操作,

解决方法:1) 对要加微信的项目进行打包签名,此时就有了自己的 keystore。

2) 将打包好的apk装到机器上,再装官方的获取签名工具:gen_signature.apk,并用此工具生成应用程序签名。

3)用获取的签名去申请当前项目对应的微信App_ID ,此时才能保证在项目中调用成功。

再一个问题:分享图片加文字

这部分就直接上代码了:

1)分享单纯的文字内容:

代码语言:javascript
复制
IWXAPI api = WXAPIFactory.createWXAPI(this, ShareConstant.APP_ID);
			
			if (api.openWXApp()) {//判断是否安装微信客户端
			String text = ShareConstant.setContent(
					response.getCategoryNamePinYin(), response.getAuctionId());

			// 初始化一个WXTextObject对象
			WXTextObject textObj = new WXTextObject();
			textObj.text = text;

			// 用WXTextObject对象初始化一个WXMediaMessage对象
			WXMediaMessage msg = new WXMediaMessage();
			msg.mediaObject = textObj;
			// 发送文本类型的消息时,title字段不起作用
			// msg.title = "Will be ignored";
			msg.description = text;

			// 构造一个Req
			SendMessageToWX.Req req = new SendMessageToWX.Req();
			req.transaction = buildTransaction("text"); //
			// transaction字段用于唯一标识一个请求
			req.message = msg;
			req.scene = SendMessageToWX.Req.WXSceneSession;// 分享
			// 调用api接口发送数据到微信
			api.sendReq(req);
			 } else {
			 Toast.makeText(Detail.this, "未安装微信", Toast.LENGTH_SHORT).show();
			 }

2)分享图片加文字:

代码语言:javascript
复制
/**
	 * 发送图片和文字
	 * 
	 * @param context
	 * @param text
	 * @param bmp
	 * @param type 分享到盆友圈:SendMessageToWX.Req.WXSceneTimeline 分享到盆友:SendMessageToWX.Req.WXSceneSession
	 */
	public void sendReq(Context context, String text, Bitmap bmp, int type) {
		// IWXAPI api = WXAPIFactory.createWXAPI(context, ShareConstant.APP_ID,
		// true);
		if (api.openWXApp()) {
			String url = ShareConstant.setUrl(response.getCategoryNamePinYin(),
					response.getAuctionId());// 分享的好友点击信息会跳转到这个地址去
			WXWebpageObject localWXWebpageObject = new WXWebpageObject();
			localWXWebpageObject.webpageUrl = url;
			WXMediaMessage localWXMediaMessage = new WXMediaMessage(
					localWXWebpageObject);
			
			localWXMediaMessage.description = text;

			// 设置消息的缩略图
			Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE,
					THUMB_SIZE, true);
			bmp.recycle();
			localWXMediaMessage.thumbData = Util.bmpToByteArray(thumbBmp, true);

			// localWXMediaMessage.thumbData = getBitmapBytes(bmp, false);
			SendMessageToWX.Req localReq = new SendMessageToWX.Req();
			localReq.transaction = System.currentTimeMillis() + "";
			localReq.message = localWXMediaMessage;
			// localReq.scene = SendMessageToWX.Req.WXSceneTimeline;// 分享到朋友圈
			// localReq.scene = SendMessageToWX.Req.WXSceneSession;// 分享给好友
			localReq.scene = type;

			api.sendReq(localReq);
		} else {
			Toast.makeText(Detail.this, "未安装微信", Toast.LENGTH_SHORT).show();
		}
	}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/188661.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档