简单的聊一聊微信支付的那些事
2018-02-05 23:57
211 查看
前往官网注册账号创建应用
微信商户平台商家查看一些交易记录和余额提现微信开放平台给开发者提供的网站
需要使用微信的支付功能肯定是要先去他的
微信开放平台申请账号的,这些步骤这里就不讲了。
注册成功之后会收到微信发的邮件,前往商户平台进行密钥设置之类的。
有了账号那就可以创建一个应用,来获取我们的AppID同时要开通微信支付能力,如下图:
填写开发信息 这里需要应用的签名和包名;包名就只需要复制我们
build.gradle中的applicationId即可,签名就需要我们通过签名工具去获取了,签名生成工具下载。
瞅一眼官方给出整个的支付流程
现在就只需要生成一个订单(一般都是在服务端做的操作)然后发起微信支付请求就可以实现微信支付了。
构造订单信息统一下单:请求微信的接口生成支付订单,请求成功之后微信会返回我们发起微信请求所需要的参数
下单接口链接
URL地址:https://api.mch.weixin.qq.com/pay/unifiedorder
请求的参数点击这里即可
现在就可以来集成微信支付的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:+'//不包含统计功能 }1
2
3
4
5
6
7
[/code]
在Manifest.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"/>1
2
3
4
5
[/code]
接下来就是调起App支付了调起支付界面
客户端重要的代码
//将app注册到微信上 IWXAPI api = WXAPIFactory.createWXAPI(this,"APP_ID"); api.registerApp("APP_ID"); //创建支付对象信息 PayReq req = new PayReq(); req.appId = "APP_ID"; //使用开放平台的账户登录商户平台 进入账户中心->商户信息 即可看到 req.partnerId = "商户号"; //微信返回的支付交易会话ID req.prepayId = "wx20170923578829050ad2bea30542412476"; //随机字符串,不长于32位。 req.nonceStr = String.valueOf(System.currentTimeMillis()); //需要转换成秒(10位数字) req.timeStamp = System.currentTimeMillis() / 1000 + ""; req.packageValue = "Sign=WXPay"; //根据官网给出的签名算法生成 req.sign = ""; //暂时不知道是干嘛的但是却必须填,这里复制的是Demo中的 req.extData = "app data"; //在支付之前,如果应用没有注册到微信,应该先调用api.registerApp将应用注册到微信 api.sendReq(req);1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[/code]
接收支付结果使用官方给出的WXPayEntryActivity.java
就可以了,记得注册这个Activity。
/** * 接收微信支付结果 */ public class WXPayEntryActivity extends Activity implements IWXAPIEventHandler { private IWXAPI api; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); api = WXAPIFactory.createWXAPI(this, PayInfoMsg.CX_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) { } @Override public void onResp(BaseResp resp) { if (resp.errCode == BaseResp.ErrCode.ERR_USER_CANCEL) { ToastUtils.showShortSafe("已取消支付"); } else if (resp.errCode == BaseResp.ErrCode.ERR_OK) { ToastUtils.showShortSafe("支付成功"); } Log.e("微信支付, errCode = " + resp.errCode); finish(); } }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[/code]
总结:总的来说重要的操作都在服务端生成订单这一块,然后拿到微信返回的一些数据来调起微信App支付;所以对于客户端这边基本没啥操作只需要发起一个请求就可以了再处理下支付的结果即可。
官方支付Demo下载
转自:http://blog.csdn.net/a_zhon/article/details/78057476相关文章推荐
- 简单的聊一聊微信支付的那些事
- 简单聊一聊那些svg的沿路径运动
- 扒一扒那些说起来简单做着难的技术需求
- 随机生成福彩双色球号码(比找的那些简单好多)
- Android微信支付之免jar包集成方式(简单至极)
- 微信小程序与php 实现微信支付的简单实例
- 微信支付 简单的流程
- 扒一扒那些说起来简单做着难的技术需求
- 送给那些经常问我如何设置360测速结果为电信的朋友,360测速模块原理简单分析
- 微信支付那些坑
- 关于简单SSH框架中的web.xml的那些配置要点---->菜鸟一定要看哦
- 微信支付(公众号支付)简单实现
- ubuntu最简单查看系统支持那些字体方法
- 关于简单SSH框架中的web.xml的那些配置要点
- 亲历H5移动端游戏微信支付接入及那些坑(三)——支付接入
- Hbuilder集成微信支付教程(简单流程)
- 茶余饭后:聊一聊那些神一样的程序员们
- 亲历H5移动端游戏微信支付接入及那些坑(一)——支付方式与坑
- Android调用微信支付接口那些坑
- 【IOS】简单的测试银联和微信支付