今天看代码,看到以前项目的微信支付功能,想做一下记录
首先是在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;
-
}