android 微信支付 简单实用

简介: android 微信支付 简单实用

前言:

先去微信开放平台注册账号,然后创建应用,签名工具下载(在页面最下面)

创建成功得到appid。

注意这里会需要一些信息,比如包名和apk签名,签名要写线上的,即release的签名,后面会继续讲。

1,添加依赖、权限

  dependencies {
        compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
    }
    dependencies {
        compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
    }
   (其中,前者包含统计功能)
<uses-permission android:name="android.permission.INTERNET" />
<!-- for mta statistics, not necessary-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

权限基本上项目中都会用到,有就不用加了。


2,注册到微信

    private IWXAPI api;
    private void regToWx() {
        api = WXAPIFactory.createWXAPI(mContext, GlobalConstant.APP_ID, true);
        api.registerApp(GlobalConstant.APP_ID);
    }

GlobalConstant.APP_ID 就是创建应用拿到的appid。

在合适的地方(比如onCreate中)调用regToWx()方法即可。


3,调起微信支付

    private void doWXPay(OrderWX.DataBean data) {
        PayReq request = new PayReq();
        request.appId = data.appid;//应用ID
        request.partnerId = data.partnerid;//商户号
        request.prepayId = data.prepayid;//预支付交易会话ID
        request.packageValue = data.packageX;//扩展字段 暂填写固定值Sign=WXPay
        request.nonceStr = data.noncestr;//随机字符串
        request.timeStamp = data.timestamp;//时间戳
        request.sign = data.sign;//签名
        api.sendReq(request);
    }

4,处理回调


在项目包名下新建wxapi包,然后新建WXPayEntryActivity类

public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_wx_pay_entry);
        IWXAPI api = WXAPIFactory.createWXAPI(this, GlobalConstant.APP_ID, false);
        api.handleIntent(getIntent(), this);
    }
    @Override
    public void onReq(BaseReq baseReq) {
        LogUtil.i("onReq" + baseReq.getType());
    }
    @Override
    public void onResp(BaseResp baseResp) {
        switch (baseResp.getType()) {
            case ConstantsAPI.COMMAND_PAY_BY_WX:
                LogUtil.i("baseResp.errCode====" + baseResp.errCode);
                switch (baseResp.errCode) {
                    case 0://展示成功页面
                        ToastUtil.showCenterToast("支付成功");
                        break;
                    case -1://签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
                        ToastUtil.showCenterToast("支付异常");
                        break;
                    case -2://无需处理。发生场景:用户不支付了,点击取消,返回APP。
                        ToastUtil.showCenterToast("支付取消");
                        break;
                }
                finish();
                break;
        }
    }
}

以上即核心代码,在onResp中处理回调逻辑即可。


别忘了在manifest中注册


<activity
            android:name=".wxapi.WXPayEntryActivity"
            android:exported="true"
            android:launchMode="singleTop"/>


闪屏要处理的话可以加上透明主题:


android:theme="@android:style/Theme.Translucent.NoTitleBar"


WXEntryActivity 同理



最后,关于测试,因为前面是线上的,所以本地测试是非常不方便的,这里有个小技巧,我们只要本地环境使用线上签名就行了。


在app目录下的build.gradle文件中配置签名信息:


//配置keystore签名
    signingConfigs {
        release {
            storeFile file("路径")
            storePassword "密码"
            keyAlias "别名"
            keyPassword "密码"
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.release
        }
        release {
            signingConfig signingConfigs.release
            .....
        }
        }

 

目录
相关文章
|
5月前
|
XML Java Android开发
微信虚拟视频插件安卓,微信虚拟相机替换拍照,java源码分享
完整的相机应用项目包含三个主要文件:主活动实现、布局文件和清单文件。代码实现了相机预览、
|
5月前
|
Android开发 数据安全/隐私保护
手机微信虚拟视频聊天,安卓免root虚拟摄像头,免root虚拟hook相机
以上代码实现了一个完整的免root虚拟摄像头方案,通过Hook系统摄像头服务和微信视频通话接口
|
5月前
|
API Android开发
微信虚拟摄像头模块,微信虚拟视频聊天,安卓虚拟摄像头插件
该实现包含虚拟摄像头服务核心、视频流生成和Android配置三个关键模块,使用Camera2
|
9月前
|
安全 算法 小程序
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
591 28
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
|
小程序 JavaScript 前端开发
微信小程序(十七)小程序监听返回键跳转事件(安卓返回也适用)
onUnload:function(){ wx.redirectTo({ url: '../index/index' }) wx.navigateTo({ url: '../index/index' }) wx.switchTab({ url: '../../member/member' }) }
1747 0
|
小程序 Android开发 iOS开发
微信小程序-虚拟支付:适用场景 / iPhone调试用支付成功,Android调用失败,提示“小程序支付能力已被限制” / “errMsg“.“requestPayment:fail banned”
微信小程序-虚拟支付:适用场景 / iPhone调试用支付成功,Android调用失败,提示“小程序支付能力已被限制” / “errMsg“.“requestPayment:fail banned”
1152 0
|
Java Linux API
微信API:探究Android平台下Hook技术的比较与应用场景分析
微信API:探究Android平台下Hook技术的比较与应用场景分析
|
小程序 前端开发 Android开发
Android企业微信分享到小程序
Android企业微信分享到小程序
264 0
|
JSON 网络协议 Android开发
【Android App】实战项目之仿微信的私信和群聊App(附源码和演示视频 超详细必看)
【Android App】实战项目之仿微信的私信和群聊App(附源码和演示视频 超详细必看)
1062 6