安卓接入微信支付最简单的教程,看完不会你打我!
这两个部分是需要注意的,包名一般你可以看你应用的Activity的第一行,像博主的就是类似com.againstsky.weixindemo(这个应该没有不知道的吧?)
然后就是应用签名,简单来说就是你的签名文件的md5值。建议在测试阶段填写debug版本签名文件的md5值,方便你的调试,在正式上线的时候再改成你正式
签名文件的md5(当然可以在Android studio中选择debug的时候也用正式版的签名文件啦,不过这就不在本教程中说了!)
那么问题来了,博主你说了这么多,还是没有说怎么获得这个文件的md5值啊!
好好好,你们先把刀放下来,我这就教你们。
方法1:使用微信提供的一个小app,把这个app安装到你的手机上,接着输入你的应用的包名就可以获得了,这里就不截图了!
方法2:使用keytool命令
keytool -list -v -keystore 你的签名文件的路径
例:
keytool -list -v -keystore mykey.jks
接着会提示你输入签名文件的密码
获取debug版本的命令:
keytool -list -v-keystore debug.keystore
debug版本的命令这样子写就可以,不用加路径,也不会提示你输入密码
然后下来的一大堆东西里的MD5值就是我们需要的了。
把中间的冒号给去掉,然后填到微信的申请界面就ok了。
等待微信的审核通过后你就能拿到一个AppID。接下来就可开始接入了。
首先在你项目的app目录下的build文件里添加这行代码:
compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
输入之后IDE会提示你SyncNow。sync now之后IDE会开始下载微信支付的相关sdk。
接着在你的项目的包下新建一个名为 wxapi 的包,包里新建一个名为WXPayEntryActivity 的activity
注意名字必须和我这里写的一模一样,包括大小写。这是微信规定的,如果你不这么写,嘿嘿,支付回调就不能成功调起(微信就是这么任性)
接下来在这个activity里写上这些代码
public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler { private IWXAPI api; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); api = WXAPIFactory.createWXAPI(this, SomeString.WeiXinApiId); 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) {//重点在这里,errcode=0的时候代表支付成功,其他情况下都代表支付失败 if(resp.errCode==0){ Toast.makeText(WXPayEntryActivity.this,"支付成功",Toast.LENGTH_SHORT).show(); }else { Toast.makeText(WXPayEntryActivity.this,"支付失败",Toast.LENGTH_SHORT).show(); } } } }配置好了回调类之后就可以写调起支付的部分了,代码很简单。
private void sendPay() { DeBug.loe("sendPay","true"); final IWXAPI msgApi = WXAPIFactory.createWXAPI(this,这里就是你刚刚获得的那个AppID,false); // 将该app注册到微信 msgApi.registerApp(这里还是你刚刚获得的那个AppID); PayReq request = new PayReq(); request.appId = 这里还是你刚刚获得的那个AppID; request.partnerId =;//接下来的这几个部分都是后台传过来的数据,如果他没传这些给你,啥都别说了,提刀吧 request.prepayId=;// request.packageValue =;// request.nonceStr=;// request.timeStamp=;// request.sign=;// msgApi.sendReq(request); finish(); }
没错,你没有看错就是这么一个函数。在activity里调用了这个函数之后,就能成功发起微信支付了。
今天的教程就到这里,由于本人第一次写博客,有不足的地方还请大家多多包涵(不包涵你也不能来打我)。如果有错误的地方还请大神指出,博主也是一只小白,大家共勉!
(如有转发请备注出处,如果您看的满意,请关注我,谢谢)