Android 微信支付

写了这么多项目了,关于支付这一块也是做了好几遍了,自己觉得是比较熟悉的了,现在就来整理一下,如何快速的实现微信支付

 

 

给大家一个微信原文档的链接吧,很多小伙伴都说微信文档写的不够清晰,很难找到对应的:

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419319167&token=&lang=zh_CN     这个是看如何集成sdk

 

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417751808&token=&lang=zh_CN 这个是看如何集成sdk

 

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1  这个是去看支付api接口什么的

 

 

一、

开发工具包(SDK)

使用微信分享、登录、收藏、支付等功能需要的库以及文件

Android Studio环境下:已改用gradle形式,发布到jcenter( http://jcenter.bintray.com/),请开发者使用gradle来编译、更新微信SDK。

在build.gradle文件中,添加如下依赖即可:

dependencies {

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

}

dependencies {

   compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'

}

(其中,前者包含统计功能)

 

 

 

4.在代码中使用开发工具包

 

[1] AndroidManifest.xml 设置

添加必要的权限支持:

 

 

 

二、 

 

在包名目录下创建wxapi文件夹,新建一个名为WXPayEntryActivity的activity继承IWXAPIEventHandler。这里注意一定是包名路径下,例如我的包名是com.umeng.soexample,则配置如下:

 

 

                   

 

 

 

 

三、这个就是继承之后的类的两个方法 ,支付后的回调都是在这个里面,然后后续的操作根据需求在相应的回调里操作

 

 

package com.example.ruidun.ShanXunApplication;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

import com.example.ruidun.ShanXunApplication.ui.activity.HomePayActivity;
import com.example.ruidun.ShanXunApplication.utils.ToastUtil;
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 {


    @Override
    public void onReq(BaseReq baseReq) {

    }

    @Override
    public void onResp(BaseResp baseResp) {
        if (baseResp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
            int number = baseResp.errCode;
            switch (number) {
                case -1://支付失败

                    break;
                case -2://支付取消

                    break;
                case 0://支付成功

                    break;
            }
        }
    }
}

 

 

 

 

 

四、在需要支付的地方调起微信

 

1、首先就是我们需要的参数都是经过后台返回的,在点击微信支付时,首先会创建一个订单,调取后台接口,然后返回调起微信支付需要的参数

 

2.在返回成功的地方调用微信支付

 

if ("0000".equals(datas.resultcode)) {//成功
    PaySendReqModel.ResultojbectBean weixinModel = (PaySendReqModel.ResultojbectBean) datas.getResultojbect();
    setWeixinPay(weixinModel);

 

 

 

 

/**
 * 微信支付
 *
 * @param weiXinPayParameter
 */
private void setWeixinPay(PaySendReqModel.ResultojbectBean weiXinPayParameter) {
    api = WXAPIFactory.createWXAPI(this, "你自己申请的微信appid", false);
    api.registerApp("你自己申请的微信appid");
    PayReq request = new PayReq();
    request.appId = weiXinPayParameter.getAppid();
    request.partnerId = weiXinPayParameter.getPartnerid();
    request.prepayId = weiXinPayParameter.getPrepayid();
    request.packageValue = "Sign=WXPay";
    request.nonceStr = weiXinPayParameter.getNoncestr();
    request.timeStamp = String.valueOf(weiXinPayParameter.getTimestamp());
    request.sign = weiXinPayParameter.getSign();
    api.sendReq(request);
}

 

 

 

 

 

 

然后就可以了啦,

 

如果遇到支付失败的情况,请自己检查自己的appid,和签名,

不能解决时可以去官网寻找答案哦

 

 

 

 

 

 

 

你可能感兴趣的:(Android,开发,Android,微信支付,微信,支付)