• IWXAPI的使用,发布分享和支付


    今天看代码,看到以前项目的微信支付功能,想做一下记录

            首先是在application类里面定义

    1. public static IWXAPI MSGAPI;
    2. public static final String WX_APPID="xxxxxxxxxxxxxxxxxxx";//你的应用从官方网站申请到的合法appId

            将该app注册到微信

    1. MSGAPI=WXAPIFactory.createWXAPI(applicationContext,WX_APPID,false);
    2. MSGAPI.registerApp(WX_APPID);

            首先支付功能

    1. if(!ApplicationXpClient.MSGAPI.isWXAppInstalled()){
    2. Log.d("weixinPay","未安装微信");
    3. return;
    4. }
    5. if(!ApplicationXpClient.MSGAPI.isWXAppSupportAPI()){
    6. Log.d("weixinPay","版本不支持");
    7. return;
    8. }
    9. PayReq request=new PayReq();//weixinPayData是后台返回的类
    10. request.appId=ApplicationXpClient.WX_APPID;
    11. request.partnerId="1387300802";
    12. request.prepayId=weixinPayData.getPrepay_id();
    13. request.packageValue="Sign=WXPay";
    14. request.nonceStr=weixinPayData.getNonce_str();
    15. request.timeStamp=weixinPayData.getDateTime();
    16. request.sign=weixinPayData.getSign();
    17. ApplicationXpClient.MSGAPI.sendReq(request);

            然后是分享功能

    1. int WX_THUMB_SIZE=120;
    2. if(!ApplicationXpClient.MSGAPI.isWXAppInstalled()){
    3. Log.d("weixinPay","未安装微信");
    4. return;
    5. }
    6. if(!ApplicationXpClient.MSGAPI.isWXAppSupportAPI()){
    7. Log.d("weixinPay","版本不支持");
    8. return;
    9. }
    10. //初始化一个WXWebpageObject对象,填写url
    11. WXWebpageObject webpage=new WXWebpageObject();
    12. webpage.webpageUrl="www.pooai.com";//这里用小普马桶官网做推广
    13. //用WXWebpageObject对象初始化一个WXMediaMessage对象,填写标题、描述
    14. WXMediaMessage msg=new WXMediaMessage(webpage);
    15. msg.title="小普未来科技";
    16. msg.description="一款来自未来的云健康智能马桶";
    17. Bitmap thumb=BitmapFactory.decodeResource(getResources(),R.drawable.xiaopu);
    18. Bitmap thumbBmp=Bitmap.createScaledBitmap(thumb,WX_THUMB_SIZE,WX_THUMB_SIZE,true);
    19. thumb.recycle();
    20. msg.thumbData=bmpToByteArray(thumbBmp,true);
    21. //构造一个Req
    22. SendMessageToWX.Req req=new SendMessageToWX.Req();
    23. req.transaction=String.valueOf(System.currentTimeMillis());
    24. req.message=msg;
    25. req.scene=SendMessageToWX.Req.WXSceneSession;//分享给朋友
    26. //req.scene = SendMessageToWX.Req.WXSceneTimeline;//分享到朋友圈
    27. ApplicationXpClient.MSGAPI.sendReq(req);
    28. public static byte[]bmpToByteArray(final Bitmap bmp,final boolean needRecycle){
    29. ByteArrayOutputStream output=new ByteArrayOutputStream();
    30. bmp.compress(CompressFormat.PNG,100,output);
    31. if(needRecycle){
    32. bmp.recycle();
    33. }
    34. byte[]result=output.toByteArray();
    35. try{
    36. output.close();
    37. }catch(Exception e){
    38. e.printStackTrace();
    39. }
    40. return result;
    41. }
  • 相关阅读:
    ASP.NET MVC实现通用设置
    C# Redis的操作
    Jquery Ajax向服务端传递数组参数值
    ASP.NET 通过配置hiddenSegment禁止目录下资源通过Url形式访问
    Jquery组织Form表单提交之Form submission canceled because the form is not connected
    Entity Framework工具POCO Code First Generator的使用
    ASP.NET MVC 5搭建自己的视图基架 (CodeTemplate)
    Jquery Ajax 提交json数据
    使用Reflector反编译并提取源代码
    ASP.NET MVC下Bundle的使用
  • 原文地址:https://www.cnblogs.com/jpfss/p/9888035.html
Copyright © 2020-2023  润新知