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;
        }
微信支付需要客户端服务端协同完成,以下是安卓端微信支付的基本流程代码示例: 1. 配置微信支付使用微信支付之前,需要先在微信开放平台上注册应用程序,并获取到应用程序的 AppID AppSecret。然后在应用程序的代码中配置微信支付的相关参数,例如: ```java // 微信支付配置 IWXAPI api = WXAPIFactory.createWXAPI(this, Constants.APP_ID, false); api.registerApp(Constants.APP_ID); ``` 2. 发起支付请求 在用户选择使用微信支付后,应用程序需要向服务端发送支付请求,并获取到预支付订单信息。然后将预支付订单信息微信支付相关参数发送到客户端,调用微信支付客户端 API 完成支付请求,例如: ```java // 发起微信支付请求 PayReq request = new PayReq(); request.appId = appId; request.partnerId = partnerId; request.prepayId = prepayId; request.packageValue = "Sign=WXPay"; request.nonceStr = nonceStr; request.timeStamp = timeStamp; request.sign = sign; api.sendReq(request); ``` 3. 处理支付结果 当用户完成支付后,微信支付客户端会返回支付结果给应用程序。应用程序需要在代码中处理支付结果,例如: ```java @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); handlePayResult(); } private void handlePayResult() { int errCode = getIntent().getIntExtra(Constants.EXTRA_RESULT_CODE, 0); if (errCode == 0) { // 支付成功 // 处理支付成功逻辑 } else { // 支付失败 // 处理支付失败逻辑 } } ``` 以上是安卓端微信支付的基本流程代码示例,需要注意的是,服务端的代码具体实现方式会因项目需求开发语言而有所不同。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值