一、在支付宝开放平台申请App应用,并且配置后台信息

https://openhome.alipay.com/platform/appManage.htm#/apps

填写自己的申请信息

添加应用功能

开发者在开发过程中,可以添加自己需要的功能到“功能列表”。不同的功能会有不同的使用条件,如果某个功能的使用条件为签约,则使用者在使用此功能前,需要签约对应的产品。自研型应用和第三方应用的签约方式略有差异,具体签约方式可参考 签约功能

配置应用环境

https://docs.open.alipay.com/200/105310

密钥生成:使用工具生成

https://docs.open.alipay.com/291/105971

提交应用审核

二、支付宝登录流程图

步骤一:使用App进行授权确认:

调用原生支付宝Sdk唤醒支付宝进行授权:https://docs.open.alipay.com/218/105325/

备注:参数说明:

app_id:

pid:

taget_id:后台自定义参数,自己测试也可以随便定义;

RSA2_PRIVATE和RSA_PRIVATE为签名方式的私钥,在申请配置信息会有

public static final String RSA2_PRIVATE = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwgg"

一般放在后台,测试可以放到移动端进行测试;

Android端集成SDK进行

1.调用方法

  /**
* 支付宝账户授权业务示例
*/
private Activity mContext;
private OnAliCallBack onAliCallBack; public void startAuthorization(final Activity mContext, OnAliCallBack onAliCallBack) {
this.onAliCallBack = onAliCallBack;
this.mContext = mContext;
if (TextUtils.isEmpty(PID) || TextUtils.isEmpty(APPID)
|| (TextUtils.isEmpty(RSA2_PRIVATE) && TextUtils.isEmpty(RSA_PRIVATE))
|| TextUtils.isEmpty(TARGET_ID)) {
Toast.makeText(mContext, "参数不全", Toast.LENGTH_SHORT).show();
return;
} /*
* 这里只是为了方便直接向商户展示支付宝的整个支付流程;所以Demo中加签过程直接放在客户端完成;
* 真实App里,privateKey等数据严禁放在客户端,加签过程务必要放在服务端完成;
* 防止商户私密数据泄露,造成不必要的资金损失,及面临各种安全风险;
*
* authInfo 的获取必须来自服务端;
*/
boolean rsa2 = (RSA2_PRIVATE.length() > 0);
Map<String, String> authInfoMap = OrderInfoUtil2_0.buildAuthInfoMap(PID, APPID, TARGET_ID, rsa2);
String info = OrderInfoUtil2_0.buildOrderParam(authInfoMap);
Log.e("ALi", info);
String privateKey = rsa2 ? RSA2_PRIVATE : RSA_PRIVATE;
String sign = OrderInfoUtil2_0.getSign(authInfoMap, privateKey, rsa2);
final String authInfo = info + "&" + sign;
Runnable authRunnable = new Runnable() {
@Override
public void run() {
// 构造AuthTask 对象
AuthTask authTask = new AuthTask(mContext);
// 调用授权接口,获取授权结果
Map<String, String> result = authTask.authV2(authInfo, true);
Message msg = new Message();
msg.what = SDK_AUTH_FLAG;
msg.obj = result;
mHandler.sendMessage(msg);
}
};
// 必须异步调用
Thread authThread = new Thread(authRunnable);
authThread.start();
}

  

2.回调信息

private static final int SDK_AUTH_FLAG = 2;
@SuppressLint("HandlerLeak")
private Handler mHandler = new Handler() {
@SuppressWarnings("unused")
public void handleMessage(Message msg) {
switch (msg.what) {
case SDK_AUTH_FLAG: {
// @SuppressWarnings("unchecked")
AuthResult authResult = new AuthResult((Map<String, String>) msg.obj, true);
String resultStatus = authResult.getResultStatus();
// 判断resultStatus 为“9000”且result_code
// 为“200”则代表授权成功,具体状态码代表含义可参考授权接口文档
if (TextUtils.equals(resultStatus, "9000") && TextUtils.equals(authResult.getResultCode(), "200")) {
// 获取alipay_open_id,调支付时作为参数extern_token 的value
// 传入,则支付账户为该授权账户
Toast.makeText(mContext, "授权成功", Toast.LENGTH_SHORT).show();
} else {
// 其他状态值则为授权失败
Toast.makeText(mContext, "授权失败", Toast.LENGTH_SHORT).show();
}
break;
}
default:
break;
}
} ;
};

 

3.授权成功之后,通过authResult.getAuthCode()  请求后台,后台通过authcode获取Token请求用户信息,把需要信息传给移动端

移动端Demo如下:PostOfficeTwo


App支付宝登录授权的更多相关文章

  1. APP支付宝登录第三方授权如何签约入口在哪里

    最近,公司项目要接入支付宝授权登录,第三方SDK接入过不少,一顿按照流程操作.到签约的步骤的时候就把我难住了,入口一直找不到.然后在文档中心搜索“支付宝登录签约”,找到一个申请地址.心想终于找到你了, ...

  2. mui APP 微信登录授权

    一.在微信平台上申请appid.appsecret. 二.app --> manifest.json-->SDK配置(填写申请好的appid和appsecret) 三.在登录页,点击微信登 ...

  3. APP支付宝登录--PHP处理代码

    1.首先需要参数: aucth_code  udid re_id极光推送id 2.https://open.alipay.com/platform/keyManage.htm 配置公钥私钥 3.需要s ...

  4. 客户端app支付宝登录接口

    如下内容: $url = 'apiname=com.alipay.account.auth&app_id=APP内容&app_name=mc&auth_type=AUTHACC ...

  5. Amazon Alexa登录授权(Android)

    访问Alexa的API,必须要携带AccessToken,也就是必须要登录授权,本文主要记录Amazon Alexa在Android平台上的登录授权过程. 一.在亚马逊开发者平台注册应用 进入亚马逊开 ...

  6. app支付宝快速入门

    最近在做个车辆认证app,需要用到支付宝付款.前端使用H5,框架是react,后台是java.app支付与普通网页支付差别还是很大,我这里主要对于app支付做说明 1.让财务开通支付宝账号(需要企业税 ...

  7. Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录

    1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...

  8. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-12基于cookie登录授权认证并实现前台会员、后台管理员同时登录

    1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...

  9. 使用PHP实现手机端APP支付宝的支付功能

    最近应业务需求,做了支付宝支付和微信支付,今天分享一下手机端app支付宝支付对接流程,实际开发过程是前后端分离,前端调用后端API接口,实现功能返回数据,我所用的跨挤啊为TP5,大致可以分为四步: 1 ...

随机推荐

  1. nRF5 SDK Bootloader and DFU moudles(1)

    在嵌入式操作系统中,BootLoader是在操作系统内核运行之前运行.可以初始化硬件设备.建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境. 在嵌 ...

  2. flask的cookies操作

    from flask import Flask,request,Response app = Flask(__name__) @app.route('/') def hello_world(): re ...

  3. 2019牛客暑期多校训练营(第九场)-D Knapsack Cryptosystem (折半搜索)

    题目链接:https://ac.nowcoder.com/acm/contest/889/D 题意:题意简单,从大小为36的集合中选若干元素使得他们的和为sum. 思路:第一感觉用搜索,复杂度为2^3 ...

  4. Count Different Palindromic Subsequences

    Given a string S, find the number of different non-empty palindromic subsequences in S, and return t ...

  5. *【Python】【demo实验30】【练习实例】【使用Turtle实现实时时钟效果】

    目的: 使用Turtle实现实时时钟效果 源代码: # encoding=utf-8 # -*- coding: UTF-8 -*- import turtle from datetime impor ...

  6. 小记--------SparkContext初始化原理机制图解

  7. shell基础篇

    1. Shell概述 为什么要学习Shell呢? 1)需要看懂运维人员编写的Shell程序. 2)偶尔会编写一些简单Shell程序来管理集群.提高开发效率. 2 .Shell解析器 (1)Linux提 ...

  8. 数据去重 -uniq

    也是经常和管道 一起操作的. -c  每行出现的次数 -d  仅仅显示重复行 -u  仅仅显示不重复行 -i  忽略大小写 注: 在对字母进行去重的时候, 一定要先对文件进行排序之后,去重的功能才可以 ...

  9. Java中的自动拆装箱(转)

    出处: 一文读懂什么是Java中的自动拆装箱 本文主要介绍Java中的自动拆箱与自动装箱的有关知识.  基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型.它们是我 ...

  10. luogu P2423 [HEOI2012]朋友圈 (最大团)

    在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着. 一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大数目.两个国家看成是 ...