集成【支付宝】实现支付功能
###1.注册流程一句带过
- 蚂蚁金服开放平台
- 创建应用
- 签约上线
官方文档:https://docs.open.alipay.com/204/105297/
###2.移动端要做的事
- 获取订单信息
- 调用支付请求
- 支付结果回调
移动端只需要处理好以上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.登录支付宝开放平台 支付宝开放平台网址:https://open.alipay.com/platform/home.htm注册账号并登录 这个不需要说了吧 2.在开放业务里,选择"支付能 ...
- Android集成支付宝移动支付功能
从支付宝开发者平台下载移动支付功能DEMO,结构如下: 将alipay-demo导入到IDE中,修改PayDemoActivity.java文件. 主要内容如下: 1. PARTNER:商户PID,以 ...
- java后端实现集成支付宝APP支付(沙箱环境)
沙箱环境集成支付宝APP支付后端实现 前言 获取支付宝相关信息 整体开发流程 1.获取核心参数 2.将支付宝SDK集成到项目中 3.后台使用支付宝SDK与支付宝进行交互逻辑 1.将支付宝公共信息参数写 ...
- Android接入支付宝实现支付功能
Android接入支付宝实现支付功能 我本来是想直接讲Android支付这一块的,包括支付宝,微信,其他第三方整合支付等,但是微信开放平台他对我的账号做了限制,所有我今天就先把重心放在支付宝的支付上, ...
- Java web集成支付宝电脑支付接口(沙箱环境)
前言 这篇博客主要介绍如何在Java web项目中集成支付宝的电脑支付接口(会稍微介绍一下服务器集成APP支付接口).目前支付宝接口更新很快,在博主查找资料的时候,很多都是即时到账接口,APP支付则是 ...
- php tp 支付宝 支付,php实现的支付宝网页支付功能示例【基于TP5框架】
本文实例讲述了php实现的支付宝网页支付功能.分享给大家供大家参考,具体如下: 1.提交支付请求 require_once './payment/zfb/pagepay/service/AlipayT ...
- tp5 集成支付宝h5支付接口
tp5 集成支付宝h5支付接口 前台支付的时候调取后台接口 function alipay(order_sn){$.ajax({url: '接口地址',type: "GET",da ...
- 支付宝app支付功能-服务端的实现-python3版
支付宝app支付功能-服务端的实现-python3版 一:需求说明 二:支付宝app支付处理流程 三:所需依赖 3.1 依赖库 3.2 支付配置 3.2.1 沙箱环境配置 3.2.2 正式环境配置 四 ...
- php 支付宝订单查询_php实现支付宝APP支付功能与源码
原标题:php实现支付宝APP支付功能与源码 码农程序自学与交流微信群 微信群有,就怕你进群发一些乱七八糟的,群有群规,既然规定是技术学习交流,那就不要发广告信息,推广信息,小程序分享,刷屏刷图等!一 ...
- java对接支付宝实现支付功能
** java对接支付宝实现支付功能 ** Controller /*** 支付功能* @return*/ @RequestMapping("/test") public Mode ...
最新文章
- 印度首席大法官力推 AI 进司法,曾因歧视女性引争议
- leetcode算法题--Decode String
- AndroidStudio创建第一个 Flutter 应用程序
- Logger.getLogger和 LogFactory.getLog
- api商品分享源码_谈谈微服务中的 API 网关(API Gateway)
- 新手做2D手游该用哪些工具?
- 可以在一个函数中定义另一个函数_第5周 定义一个函数
- 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_07-CMS需求分析-SSI服务端包含技术...
- python done函数作用_turtle.done()的作用是什么
- java 去停用词_利用jieba分词并去除停用词
- 使用python读写xlsx格式中的数据【xlrd、pywin32】
- 卡巴斯基v6.0激活码
- 庆祝61-牛客模拟笔试七月场(使圆圈队形中相邻小朋友的身高差的最大值最小的解法)
- W10系统下 获取 TrustedInstaller 高级权限.
- iOS开发之3DTouch集成
- 可视监控对讲、楼宇对讲等领域中的回声消除、音频降噪
- 如何将动图中多余的去掉?教你快速裁剪动图
- 人工智能安全(五)—梯度攻击
- win10下shell入门学习(一)
- 可视化神器Plotly玩转桑基图