Android集成微信支付
一、创建应用
登录微信开放平台https://open.weixin.qq.com/cgi-bin/frame?t=home/app_tmpl&lang=zh_CN创建应用,需要用到应用包名(在清单配置文件中查看)和应用签名(签名证书中的签名信息,推荐用微信的获取签名信息程序查看,也可以用keytool命令查看,注意是正式证书)
二、环境集成
下载微信SDK,导入jar包
在工程中创建com.*.wxapi包,在此包中创建WXPayEntryActivity类并实现IWXAPIEventHandler接口,注意只能是此包名和类名,此类用于接收微信支付同步回调通知
在清单配置文件中申明此Activity
<!-- 微信支付结果回调activity -->
<activity
android:name="com.***.wxapi.WXPayEntryActivity"
android:exported="true"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<!-- 申请的appId -->
<data android:scheme="wx********************" />
</intent-filter>
</activity>
注意在此写上自己的AppId,至此准备工作就完成了
三、流程
1、APP端点击支付后,将订单信息传给服务端,服务端对信息签名后发送给微信服务端,成功后服务端将收到的prepayId结合其他信息再次作签名后传给APP端
2、APP端先创建 IWXAPI 对象及注册,然后根据服务端传过来的信息创建 PayReq 对象,然后调用IWXAPI 的sendReq方法调起微信APP支付
3、支付完成后会启动WXPayEntryActivity,在此类的onResp方法中同步接收支付结果
4、APP收到同步结果后需要去服务端查询微信返回的异步通知结果,然后再向用户展示支付结果
四、注意点
1、创建应用时,注意包名和应用签名的正确性
2、注意服务端做的签名的正确性,否则无法调起微信APP
3、注意配置WXPayEntryActivity,在发起支付前,注意先注册IWXAPI
4、Android端调试应用时,注意使用正式证书,使用自己的证书调试时,要先将证书密码、别名修改的和默认证书debug.keystore一致,然后再作引用(Window-preferences-Android-build),修改证书密码(http://www.cnblogs.com/mizzle/p/3977464.html)