###1.注册流程一句带过

  1. 蚂蚁金服开放平台
  2. 创建应用
  3. 签约上线

官方文档:https://docs.open.alipay.com/204/105297/

###2.移动端要做的事

  1. 获取订单信息
  2. 调用支付请求
  3. 支付结果回调

移动端只需要处理好以上3步就可以,并没有太多流程。

###3.开始接入

####3.1 导入并配置SDK

SDK下载链接:https://docs.open.alipay.com/54/104509

1.将jar包复制到工程目录libs下,并添加依赖

2.在AndroidManifest.xml文件中添加声明

<activityandroid:name="com.alipay.sdk.app.H5PayActivity"android:configChanges="orientation|keyboardHidden|navigation|screenSize"android:exported="false"android:screenOrientation="behind"android:windowSoftInputMode="adjustResize|stateHidden" />
<activityandroid:name="com.alipay.sdk.app.H5AuthActivity"android:configChanges="orientation|keyboardHidden|navigation"android:exported="false"android:screenOrientation="behind"android:windowSoftInputMode="adjustResize|stateHidden" />

3.添加权限(注意6.0动态申请)

<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.添加代码混淆(proguard-rules.pro)

-keep class com.alipay.android.app.IAlixPay{*;}
-keep class com.alipay.android.app.IAlixPay$Stub{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
-keep class com.alipay.sdk.app.PayTask{ public *;}
-keep class com.alipay.sdk.app.AuthTask{ public *;}
-keep class com.alipay.sdk.app.H5PayCallback {<fields>;<methods>;
}
-keep class com.alipay.android.phone.mrpc.core.** { *; }
-keep class com.alipay.apmobilesecuritysdk.** { *; }
-keep class com.alipay.mobile.framework.service.annotation.** { *; }
-keep class com.alipay.mobilesecuritysdk.face.** { *; }
-keep class com.alipay.tscenter.biz.rpc.** { *; }
-keep class org.json.alipay.** { *; }
-keep class com.alipay.tscenter.** { *; }
-keep class com.ta.utdid2.** { *;}
-keep class com.ut.device.** { *;}

5.同步工程

做完以上步骤就完成了SDK的所有配置。

####3.2 现在可以调用API了
因为订单信息涉及到加密运算,通常是由服务器处理后返回给APP端,APP端只需要上传商品信息。但为了演示整体流程,我们在APP端加密了一条订单信息以供使用(需要APPID与RES私钥,本次使用的是RES2加密)。

demo中这三个类就是加密订单信息的工具类,正常开发中APP端不需要用到。

Map<String, String> params = OrderInfoUtil2_0.buildOrderParamMap(APPID, true);
String orderParam = OrderInfoUtil2_0.buildOrderParam(params);
String sign = OrderInfoUtil2_0.getSign(params, RSA2_PRIVATE, true);
final String orderInfo = orderParam + "&" + sign;

orderInfo 就是加密后的订单信息了

接下来就是调用支付宝的API请求支付订单了,注意这里必须在子线程异步调用。

Runnable payRunnable = new Runnable() {@Overridepublic void run() {PayTask payTask = new PayTask(ACTIVITY);Map<String, String> result = payTask.payV2(orderInfo, true);Message msg = new Message();msg.what = PAY_FLAG;msg.obj = result;mHandler.sendMessage(msg);}
};
Thread payThread = new Thread(payRunnable);
payThread.start();

最后就是回调支付结果

PayResult payResult = new PayResult((Map<String, String>) msg.obj);
String resultStatus = payResult.getResultStatus();
if (TextUtils.equals(resultStatus, "9000")) {Toast.makeText(CONTEXT, "支付成功", Toast.LENGTH_SHORT).show();//成功处理
} else {Toast.makeText(CONTEXT, "支付失败: " + resultStatus, Toast.LENGTH_SHORT).show();//失败处理
}

PayResult 是demo中的一个类,封装了回调的数据类型,直接用就可以。注意的是 resultStatus 为支付宝同步回调给APP端的支付结果,同时支付宝会异步的回调给服务端一个支付结果,这两个结果极小概率会出现不等情况,且几乎无时差。但实际开发中通常以服务端的结果为主,毕竟和钱打交道。

集成【支付宝】实现支付功能相关推荐

  1. 移动客户端集成支付宝移动支付功能详细步骤

    1.登录支付宝开放平台 支付宝开放平台网址:https://open.alipay.com/platform/home.htm注册账号并登录 这个不需要说了吧 2.在开放业务里,选择"支付能 ...

  2. Android集成支付宝移动支付功能

    从支付宝开发者平台下载移动支付功能DEMO,结构如下: 将alipay-demo导入到IDE中,修改PayDemoActivity.java文件. 主要内容如下: 1. PARTNER:商户PID,以 ...

  3. java后端实现集成支付宝APP支付(沙箱环境)

    沙箱环境集成支付宝APP支付后端实现 前言 获取支付宝相关信息 整体开发流程 1.获取核心参数 2.将支付宝SDK集成到项目中 3.后台使用支付宝SDK与支付宝进行交互逻辑 1.将支付宝公共信息参数写 ...

  4. Android接入支付宝实现支付功能

    Android接入支付宝实现支付功能 我本来是想直接讲Android支付这一块的,包括支付宝,微信,其他第三方整合支付等,但是微信开放平台他对我的账号做了限制,所有我今天就先把重心放在支付宝的支付上, ...

  5. Java web集成支付宝电脑支付接口(沙箱环境)

    前言 这篇博客主要介绍如何在Java web项目中集成支付宝的电脑支付接口(会稍微介绍一下服务器集成APP支付接口).目前支付宝接口更新很快,在博主查找资料的时候,很多都是即时到账接口,APP支付则是 ...

  6. php tp 支付宝 支付,php实现的支付宝网页支付功能示例【基于TP5框架】

    本文实例讲述了php实现的支付宝网页支付功能.分享给大家供大家参考,具体如下: 1.提交支付请求 require_once './payment/zfb/pagepay/service/AlipayT ...

  7. tp5 集成支付宝h5支付接口

    tp5 集成支付宝h5支付接口 前台支付的时候调取后台接口 function alipay(order_sn){$.ajax({url: '接口地址',type: "GET",da ...

  8. 支付宝app支付功能-服务端的实现-python3版

    支付宝app支付功能-服务端的实现-python3版 一:需求说明 二:支付宝app支付处理流程 三:所需依赖 3.1 依赖库 3.2 支付配置 3.2.1 沙箱环境配置 3.2.2 正式环境配置 四 ...

  9. php 支付宝订单查询_php实现支付宝APP支付功能与源码

    原标题:php实现支付宝APP支付功能与源码 码农程序自学与交流微信群 微信群有,就怕你进群发一些乱七八糟的,群有群规,既然规定是技术学习交流,那就不要发广告信息,推广信息,小程序分享,刷屏刷图等!一 ...

  10. java对接支付宝实现支付功能

    ** java对接支付宝实现支付功能 ** Controller /*** 支付功能* @return*/ @RequestMapping("/test") public Mode ...

最新文章

  1. 印度首席大法官力推 AI 进司法,曾因歧视女性引争议
  2. leetcode算法题--Decode String
  3. AndroidStudio创建第一个 Flutter 应用程序
  4. Logger.getLogger和 LogFactory.getLog
  5. api商品分享源码_谈谈微服务中的 API 网关(API Gateway)
  6. 新手做2D手游该用哪些工具?
  7. 可以在一个函数中定义另一个函数_第5周 定义一个函数
  8. 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_07-CMS需求分析-SSI服务端包含技术...
  9. python done函数作用_turtle.done()的作用是什么
  10. java 去停用词_利用jieba分词并去除停用词
  11. 使用python读写xlsx格式中的数据【xlrd、pywin32】
  12. 卡巴斯基v6.0激活码
  13. 庆祝61-牛客模拟笔试七月场(使圆圈队形中相邻小朋友的身高差的最大值最小的解法)
  14. W10系统下 获取 TrustedInstaller 高级权限.
  15. iOS开发之3DTouch集成
  16. 可视监控对讲、楼宇对讲等领域中的回声消除、音频降噪
  17. 如何将动图中多余的去掉?教你快速裁剪动图
  18. 人工智能安全(五)—梯度攻击
  19. win10下shell入门学习(一)
  20. 可视化神器Plotly玩转桑基图

热门文章

  1. 桌面图标出现蓝底怎么办
  2. 关于BufferedReader.readLine()
  3. 程序员必须掌握!Java常用的8大排序算法
  4. web自动化通过js获取class属性值
  5. fetch的简单使用
  6. 宝藏又小众的花朵免抠元素素材网站分享
  7. AngularJS 学习笔记---AngularJS 简介
  8. golang实现RSA加密解密算法
  9. 生活随笔:猎场的感悟
  10. 关于人工智能中意识辩论的奇特理论