如今的电商移动APP开发中,移动支付是必不可少的一个特色功能,前2年移动支付功能主要依赖于阿里巴巴的支付宝、银联支
付、块钱支付等。去年腾讯作为IT界的巨头推出了微信支付平台,目前占据移动APP支付功能的两大巨头是:支付宝支付、微信支
付。移动APP集成支付宝功能 前面已经总结出来了,下面主要对微信支付平台实现移动支付功能的准备工作,微信支付是由腾讯公
司知名移动社交通讯软件微信及第三方支付平台财付通联合推出的移动支付创新产品,主要是为大家提供更加优质的服务。那微信
支付怎么用呢?想必有很多初次接触的都不太清楚,下面大家带来了微信支付使用教程详解。
一、开发之前的准备工作:
1、必须是微信公众账号;
2、目前仅包括商超百货、服饰鞋包、母婴食品、数码家电、图书、化妆品、汽车及配件等实物产品经营账号申请。
3、申请微信支付接口的商家,首先需要申请成为服务号,并在申请微信认证后,填写商户基本资料、业务基本资料、财务审核
资料。通过审核了的商户才能进入开发流程,通过开发接口文档的指引,帮助商户顺利完成开发,此后签订合同并缴纳保证金后,
申请全网发布,即可开通微信支付能力,在获得接口权限后,才可以售卖商品。
4、申请微信支付接口需要交2万的保证金,具体如下图所示:
二、进行APP集成
已通过微信认证的服务号可登录微信公众平台,点击“服务”—“服务中心”—“商户功能”提交资料,申请公众号支付或App支付功能。
1.申请你的AppID
请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将该应用提交审核,只有审核通过的应用才能进行开发。
2.下载微信终端开发工具包
开发工具包主要包含3部分内容:(其中,只有libammsdk.jar是必须的)
libammsdk.jar(每个第三方应用必须要导入该sdk库,用于实现与微信的通信)
API文档(供开发者查阅使用)
界面小工具源码(封装了界面表现的工具类,以及一些界面风格)
3.搭建开发环境
[1] 在Eclipse中建立你的工程。
[2] 在工程中新建一个libs目录,将开发工具包中libs目录下的libammsdk.jar复制到该目录中(如下图所示,建立了一个
名为SDK_Sample 的工程,并把jar包复制到libs目录下)。
[3] 右键单击工程,选择Build Path中的Configure Build Path...,选中Libraries这个tab,并通过Add Jars...导入工程libs目录下的libammsdk.jar文件。(如下图所示)。
在你需要使用微信终端API的文件中导入相应的类。
import com.tencent.mm.sdk.openapi.WXTextObject;
[4] 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"/>
4.在代码中使用开发工具包
[1] 注册到微信
要使你的程序启动后微信终端能响应你的程序,必须在代码中向微信终端注册你的id。(如下图所示,可以在程序入口Activity的onCreate回调函数处,或其他合适的地方将你的应用id注册到微信。注册函数示例如下图所示。
[2] 发送请求或响应到微信
现在,你的程序要发送请求或发送响应到微信终端,可以通过IWXAPI的 sendReq 和 sendResp 两个方法来实现。
boolean sendReq(BaseReq req);
sendReq是第三方app主动发送消息给微信,发送完成之后会切回到第三方app界面。
boolean sendResp(BaseResp resp);
sendResp是微信向第三方app请求数据,第三方app回应数据之后会切回到微信界面。
sendReq的实现示例,如下图所示:
需要注意的是,SendMessageToWX.Req的scene成员,如果scene填WXSceneSession,那么消息会发送至微信的会话内。如果
scene填WXSceneTimeline(微信4.2以上支持,如果需要检查微信版本支持API的情况, 可调用IWXAPI的getWXAppSupportAPI方
法,0x21020001及以上支持发送朋友圈),那么消息会发送至朋友圈。scene默认值为WXSceneSession。
sendResp的实现与SendReq类似,如下图所示:
[3] 接收微信的请求及返回值
如果你的程序需要接收微信发送的请求,或者接收发送到微信请求的响应结果,需要下面3步操作:
a. 在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,该类继承自Activity(例如应用程序的包名为net.sourceforge.simcpux,则新添加的类如下图所示)
并在manifest文件里面加上exported属性,设置为true,例如:
b. 实现IWXAPIEventHandler接口,微信发送的请求将回调到onReq方法,发送到微信请求的响应结果将回调到onResp方法
c. 在WXEntryActivity中将接收到的intent及实现了IWXAPIEventHandler接口的对象传递给IWXAPI接口的handleIntent方法,示例如下图:
当微信发送请求到你的应用,将通过IWXAPIEventHandler接口的onReq方法进行回调,类似的,应用请求微信的响应结果将通过onResp回调。
注意
如果需要混淆代码,为了保证sdk的正常使用,需要在proguard.cfg加上下面两行配置:
-keep class com.tencent.mm.sdk.openapi.WXMediaMessage {*;}
-keep class com.tencent.mm.sdk.openapi.** implements com.tencent.mm.sdk.openapi.WXMediaMessage$IMediaObject {*;}