IWXAPI的使用,發佈分享和支付

先貼微信文檔的地址吧,一切照着文檔來

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;
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章