本篇文章为大家展示了怎么在Android应用中接入支付宝和微信支付,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
<强>支付宝接入强> <强>
强>
<强>首先是接入支付宝的aar文件强>
比较坑的是支付宝还需要下载aar文件导入,而不是gradle里面一行依赖就能搞定的。
我们需要去官网下载最新的演示和SDK,官网地址在这里
然后把下载下来的aar包,放到项目目录下面的填词目录下,通过下面的gradle依赖进来
//,支付宝,SDK AAR 包所需的配置 编译(名称:& # 39;alipaysdk 15.6.0 - 20190226104104 noutdid& # 39;,, ext:, & # 39; aar # 39;)
<强>调用支付宝SDK的方法发起支付强>
调用支付宝SDK发起支付,只需要一个参数,就是服务端返回的订单信息,所以这里的支付顺序是先要我们调用服务端的接口创建一个订单,然后服务端把订单信息返回给我们,我们应用拿着这个订单信息去调用支付宝支付。
//下面的orderInfo就是咱自己的服务端返回的订单信息,里面除了订单ID等,还有签名等安全信息//使用方式基本按照支付宝的演示里面就行了 ,,,, 时间=final Runnable  payRunnable new Runnable (), { @Override才能 public 才能;void 运行(),{ ,,,PayTask alipay =, new PayTask (PayDemoActivity.this); ,,,Map<字符串,String>, result =, alipay.payV2 (orderInfo,,真的); ,,,Log.i (“msp",, result.toString ()); ,,,, ,,,Message msg =, new 消息(); ,,,msg.what =, SDK_PAY_FLAG; ,,,msg.obj =,结果; ,,,mHandler.sendMessage(味精); ,,} };//,必须异步调用 Thread payThread =, new 线程(payRunnable); payThread.start ();
由上面的调用可见,支付宝是通过消息机制来接收回调的,所以我们得在处理程序的消息中接收回调信息。
private Handler mHandler =, new 处理程序(),{ @SuppressWarnings才能(“unused") public 才能;void  handleMessage (Message 味精),{ ,,,switch (msg.what), { ,,,case SDK_PAY_FLAG:, { ,,,,,//这里接收支付宝的回调信息 ,,,,,//需要注意的是,支付结果一定要调用自己的服务端来确定,不能通过支付宝的回调结果来判断 ,,,,,休息; ,,,} ,,,默认值: ,,,,,休息; ,,,} ,,}; };
需要注意的是,支付结果一定要调用自己的服务端来确定,不能通过支付宝的回调结果来判断!
<强>其他强>
实际情况里需要考虑用户手机上有没有安装过支付宝
- <李>
已经安装过支付宝,会直接调用支付宝支付
李> <李>没有安装支付宝,会调起支付宝的H5页面支付
李>以上就是支付宝的接入了,步骤还是比较简单的,也没有什么坑。下面的微信支付就有坑了……
<>强微信支付接入强>
接入微信的SDK
官网在这
相比于支付宝,微信接入SDK就比较简单了,一行代码搞定
//微信支付SDK compile & # 39; com.tencent.mm.opensdk: wechat-sdk-android-with-mta: + & # 39;
这里需要注意的是,微信的SDK里面支付和社交登录等这些是集成在一起的,无法分开。所以如果项目里之前已经集成过微信登录的话就不需要重复集成了!
<强>调用微信SDK发起支付
强>
String content =,,,,(这个是服务端返回的订单信息)//需要一个注册微信支付的APPID IWXAPI api =, WXAPIFactory.createWXAPI (APPID mContext也); JSONObject json =, new JSONObject(内容),, PayReq req =, new PayReq (); req.appId ,,,,,=, json.getString (“appid"); req.partnerId ,,,=, json.getString (“partnerid"); req.prepayId ,,,=, json.getString (“prepayid"); req.nonceStr ,,,=, json.getString (“noncestr"); req.timeStamp ,,,=, json.getString (“timestamp"); req.packageValue ,=, json.getString (“package"); req.sign ,,,,,=, json.getString (“sign"); api.sendReq(点播);,//这里就发起调用微信支付了
<强>接收微信支付的回调强>
可以看到上面的代码和支付宝就不一样了,没有用处理器。