怎么在Android应用中接入支付宝和微信支付

  介绍

本篇文章为大家展示了怎么在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(点播);,//这里就发起调用微信支付了

<强>接收微信支付的回调

可以看到上面的代码和支付宝就不一样了,没有用处理器。

怎么在Android应用中接入支付宝和微信支付