Android 微信支付
来源:互联网 发布:qq群关键词排名优化 编辑:程序博客网 时间:2024/06/08 16:18
写了这么多项目了,关于支付这一块也是做了好几遍了,自己觉得是比较熟悉的了,现在就来整理一下,如何快速的实现微信支付
给大家一个微信原文档的链接吧,很多小伙伴都说微信文档写的不够清晰,很难找到对应的:
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 设置
添加必要的权限支持:
<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"/>
二、
在包名目录下创建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微信支付
- Android 微信支付
- android微信支付
- android微信支付
- android微信支付
- Android 微信支付
- Android 微信支付
- android微信支付
- android 微信支付
- Android 微信支付
- android微信支付
- Android微信支付
- Android微信支付
- Android微信支付
- Android微信支付
- android微信支付
- Android微信支付
- CPU之define
- 看待设计需求的三重境界
- 给预置的APP 增加 默认权限
- 如何选择第三方技术
- dependency 中的 classifier属性
- Android 微信支付
- 深入理解JVM—JVM内存模型
- 安装并配置JAVA环境(WIN10)
- 如何应对复杂信息架构产品的设计
- 死磕Java并发:深入分析synchronized的实现原理
- AutoLisp 简要笔记
- cpu之Execute_Memory
- nyoj 14 会场安排问题 java Set用法
- 机器学习入门MNIST(代码)(自动下载和本地加载数据集两种方式)