安卓微信支付

首先 清单文件

<activity
    android:name=".wxapi.WXPayEntryActivity"
    android:exported="true"
    android:launchMode="singleTop" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
然后依赖:

compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'//微信支付
有一个必须在  包名为wxapi 下的activity    wxapi前面的包名 是注册这个APP应用的包名  不需要你管的:

这个类  直接去官网copy:

appid  是公司申请给你的  也不用你管  除非全套你做的。这个类我进行了一些改动   你拿来用就可以了   把APPID加上去就好

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

import com.tencent.mm.opensdk.constants.ConstantsAPI;
import com.tencent.mm.opensdk.modelbase.BaseReq;
import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.IWXAPIEventHandler;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;


public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
    private String APPID = "";
    private IWXAPI api;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ///setContentView(R.layout.pay_result);

        api = WXAPIFactory.createWXAPI(this, APPID);
        api.handleIntent(getIntent(), this);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        api.handleIntent(intent, this);
    }

    @Override
    public void onReq(BaseReq req) {

    }

    @Override
    public void onResp(BaseResp resp) {

        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
            if (resp.errCode == 0) {
                Toast.makeText(this, "支付成功", Toast.LENGTH_LONG).show();
            } else if (resp.errCode == -2) {
                Toast.makeText(this, "取消支付", Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(this, "支付失败", Toast.LENGTH_LONG).show();
            }
            finish();
        }

    }

}
  上面的类 主要用于支付成功 失败 取消的回调


下面 我们怎么唤起支付呢 

只需要一个方法就可以了(你可以弄成一个点击事件去触发):

  
public void wxpay(WxPayBean wxPayBean) {

    IWXAPI api = WXAPIFactory.createWXAPI(this, appid);
    api.registerApp(appid);
    PayReq payReq = new PayReq();
    payReq.appId = appid;
    payReq.partnerId = wxPayBean.getData().getWeichatpaySignedParamObj().getPartnerid();
    payReq.prepayId = wxPayBean.getData().getWeichatpaySignedParamObj().getPrepayid();
    payReq.packageValue = wxPayBean.getData().getWeichatpaySignedParamObj().getPackagestr();
    payReq.nonceStr = wxPayBean.getData().getWeichatpaySignedParamObj().getNoncestr();
    payReq.timeStamp = wxPayBean.getData().getWeichatpaySignedParamObj().getTimestamp();
    payReq.sign = wxPayBean.getData().getWeichatpaySignedParamObj().getSign();
    api.sendReq(payReq);
}
这样就唤起支付了     这个javabean是你请求后台 他们会给你的  然后把数据塞进去   点击按钮执行这个方法就跳到支付界面了   ,就会去唤醒刚才的回调activity
好了 微信支付就这么简单:
<activity
    android:name=".wxapi.WXPayEntryActivity"
    android:exported="true"
    android:launchMode="singleTop" />
如果不加 expored="true" launchMode="singTop" 就会不执行回调!!!!!!!!!!!!!


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值