安卓客户端5分钟集成微信支付

本文详细介绍如何在Android应用中集成微信支付功能,包括依赖导入、回调处理、支付请求流程及必要的权限配置。此外还提供了签名配置的方法。

studio

1:导包

  //wechat
    compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.0.2'

2:微信的回调是在WXPayEntryActivity中完成的
注意必须放在包名.wxapi目录下
这里写图片描述

WXPayEntryActivity.class

/**
 * 作者:haoran   on https://github.com/woaigmz 2017/7/27.
 * 邮箱:1549112908@qq.com
 * 说明:
 */

public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler {



    private IWXAPI api;
    protected static final String EXIT = "exit_application";
    protected static final String EXIT_ACTION = "pay_finish";

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

        api = WXAPIFactory.createWXAPI(this, WeChatConfig.APP_ID);
        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) {
        finish();
    }

    /**
     * 得到支付结果回调
     */
    @Override
    public void onResp(BaseResp resp) {
        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
            Log.d("hhhhhhh", "onPayFinish,errCode=" + resp.errCode);
            if (resp.errCode == 0) {
                ToastUtil.showLongToast( "支付成功");
                //需求是支付成功后对应支付界面消失,这里就不用rxjava或事件总线了,粗暴一点
                Intent intent = new Intent(EXIT_ACTION);
                intent.putExtra(EXIT,EXIT);
                sendBroadcast(intent);
                this.finish();
            } else if (resp.errCode == -1) {
                ToastUtil.showLongToast( "配置错误");
                this.finish();
            } else if (resp.errCode == -2) {
                ToastUtil.showLongToast( "用户取消");
                this.finish();
            }
        } else {
            ToastUtil.showLongToast(resp.errStr);
        }
    }
}

3:清单文件
权限

 <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
 <activity android:name=".wxapi.WXPayEntryActivity"
                  android:exported="true"
                  android:launchMode="singleTop">

4:支付界面调用微信支付
通过自己服务器,拿到相关信息,注册后给微信发送支付请求
packageValues 都一样,可以写死

private static final String WX_PAY_ERRMSG_1 = "您没有安装微信,请安装微信客户端...";

这里写图片描述

5:签名

  signingConfigs {
        release {
            storeFile file('I:/xxx.jks')
            storePassword 'yhr123'
            keyAlias 'key0'
            keyPassword 'yhr123'
        }
    }
  buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.release
        }
    }

gradlew assembledrelease 生成apk 运行后 通过微信提供的一个获取签名工具拿到签名 放在微信开发平台自己创建的应用下面
这里写图片描述

不管是debug,还是release,只要和微信那个界面一致就行,上线再修改成release签名

哈哈,这里就介绍完了,有问题给我留言哦,谢谢
~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值