先貼微信文檔的地址吧,一切照着文檔來
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_12&index=2
再記錄一下我是怎麼做的
首先是在application類裏面定義,我繼承Application的類叫ApplicationXpClient
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;
}