支付宝开发平台——第三方应用授权

制作支付宝AR应用时遇到第三方应用授权,特在此记录下来供有需要的朋友们参考!如有不足,欢迎补充!!!

1、打开支付宝开发平台,注册成为开发者,点击开发者中心,在我的应用中创建一个应用;点击功能信息,添加我们需要的功能:

因为我们的应用没有上线,APPID是无效的,这里阿里给了我们一个解决方案,就是通过沙箱模式进行接口调试,下面我们来配一下我们的沙箱模式:

APPID : 沙箱应用APPID  ( *正式环境下的APPID :你开发应用的APPID )

支付宝网关:* 沙箱下的网关:         https://openapi.alipaydev.com/gateway.do

( *正式环境下的网关 : https://openapi.alipay.com/gateway.do)

RSA2(SHA256)密钥(推荐) : (配置过RAS2就可以不用配置RAS1了) 生成RSA密钥方法可参照支付宝文档 :https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=105971&docType=1

应用网关:用于接收支付宝异步通知,如口碑开店中的开发者门店被动通知;实际使用时配置;

授权回调地址: 授权url中的redirect_uri必须与此值相同

AES密钥: 目前不再使用

(应用网关和授权回调地址,这里因为是本地调试)

做好这些准备工作我们就可以开始进行我们的具体功能实现了,首先我打开支付宝开发平台开发文档,点击基础能力->第三方应用授权,阅读一遍内容,我回到文档的第三步:

注意这里的app_id要填写沙箱应用的ID,不然是无法完成调用支付登录页面的。

url 拼接: https://openauth.alipaydev.com/oauth2/appToAppAuth.htm?app_id=沙箱应用APPID&redirect_uri=http://127.0.0.1:8080/aliar_tools/aliar/aliartest.action

下面java后端业务处理:(struts2 框架)

import org.apache.struts2.ServletActionContext;

import com.alipay.api.AlipayApiException;

import com.alipay.api.AlipayClient;

import com.alipay.api.DefaultAlipayClient;

import com.alipay.api.request.AlipayOpenAuthTokenAppRequest;

import com.alipay.api.response.AlipayOpenAuthTokenAppResponse;

import com.opensymphony.xwork2.ActionSupport;

public class AliArTestAction extends ActionSupport{

private static final long serialVersionUID = 1L;

/*APPID*/

private static final String APP_ID = "20***50023260";

/*应用私钥 —— 本地生成的私钥*/

private static final String APP_PRIVATE_KEY =  "应用私钥2048";

/*支付宝公钥 —— 应用公钥对应的支付宝公钥*/

private static final String ALIPAY_PUBLIC_KEY = "支付宝公钥";

/*访问应用授权URL时会自动生成  app_auth_code

* url 拼接: https://openauth.alipaydev.com/oauth2/appToAppAuth.htm?app_id=2016081500253260&redirect_uri=http://127.0.0.1:8080/aliar_tools/aliar/aliartest.action

*/

private String app_auth_code;

public String getApp_auth_code() {

return app_auth_code;

}

public void setApp_auth_code(String app_auth_code) {

this.app_auth_code = app_auth_code;

}

public String aliartest(){

String str = "";

System.out.println("app_auth_code = "+app_auth_code);

/*

* 正式环境下的网关 : https://openapi.alipay.com/gateway.do

* 沙箱下的网关:         https://openapi.alipaydev.com/gateway.do

*/

//    AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY,"RSA2");

AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipaydev.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY,"RSA2");

AlipayOpenAuthTokenAppRequest request = new AlipayOpenAuthTokenAppRequest();

/*

* grant_type : 授权类型 ; 如果使用app_auth_code换取token,则为authorization_code,如果使用refresh_token换取新的token,则为refresh_token

* code : 授权码 ; 与refresh_token二选一,用户对应用授权后得到,即第一步中开发者获取到的app_auth_code值

* refresh_token : 刷新令牌 ; 与code二选一,可为空,刷新令牌时使用

*/

request.setBizContent("{" +

"\"grant_type\":\"authorization_code\"," +

"\"code\":\""+ app_auth_code +"\"" +

//    "\"refresh_token\":\""+ refresh_token +"\"" +

"}");

AlipayOpenAuthTokenAppResponse response;

try {

response = alipayClient.execute(request);

if(response.isSuccess()){

System.out.println("调用成功");

} else {

System.out.println("调用失败");

}

str = response.getBody();

System.out.println(response.getBody());

} catch (AlipayApiException e) {

// TODO Auto-generated catch block

e.printStackTrace();

str = "{\"resultCode\":-1,\"resultDesc\":\"aliartest异常\",\"res\":[]}";

}

ServletActionContext.getRequest().setAttribute("userXml",str);

return SUCCESS;

}

}

===============

授权后页面响应:

{

"alipay_open_auth_token_app_response": {

"code": "10000",

"msg": "Success",

"app_auth_token": "201744f3904de393dafaf8ae3b4X8",

"app_refresh_token": "201b9c16be43bfd4b6d86d82752F58",

"auth_app_id": "20****50023260",

"expires_in": 31536000,

"re_expires_in": 32140800,

"user_id": "217112581"

},

"sign": "oMt87ixU/6BmMokewP1ytRiShfk5K3356mp+F6TRbaNZi403FIMSNnf42Ae9/IQWAmDED6VD4KNN8rCs3y0ANQ/OUr4XGVA9R+HaVbX99rlh3ysEOxTyLQwgg8Ek06ZrBoe7LsQ5pVCytcsoQ4MZcP9GkoQ=="

}

注意: 代码中使用的公钥 为: 支付宝公钥, 不是本地生成的公钥

jdk下载地址:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.bj1TCE&treeId=54&articleId=103419&docType=1

android 支付宝第三方应用授权,支付宝开发平台—第三方应用授权相关推荐

  1. EasyWeChat微信开发平台第三方接入(Laravel5+,EasyWeChat3.0/EasyWeChat4.0)

    一.准备微信开发平台账号(需要认证¥300) 二.看代码(注意:其中有自己建的数据表) 1.EasyWeChat 3.0 微信开发平台第三方平台接入 <?php namespace App\Ht ...

  2. 微信开发平台第三方平台86004无效微信号

    快速注册企业小程序功能在第三方平台 微信文档:快速注册企业小程序 | 微信开放文档 接口返回86004 无效微信号 解决办法: 1.先查看tocke是否能够正确获取到. 2.在去验证传值参数是否正确 ...

  3. 【我的Android进阶之旅】NDK开发引入第三方so库(比如assimp和opencv库)常出现的几个问题:missing and no known rule to make it等

    文章目录 一.写这篇博客的原因 二.错误一.ninja: error: 'xxx.so', needed by 'yyy.so', missing and no known rule to make ...

  4. 微信公众平台开发OAuth2.0网页授权(转)

    微信公众平台开发 OAuth2.0网页授权认证 网页授权获取用户基本信息  作者:方倍工作室 微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在 ...

  5. 微信公众平台开发 OAuth2.0网页授权认证

    一.什么是OAuth2.0 官方网站:http://oauth.NET/   http://oauth.Net/2/ 权威定义:OAuth is An open protocol to allow s ...

  6. [高通SDM450][Android 9.0] 虹软人脸算法WIFI信息变化导致授权失败

    虹软人脸算法WIFI信息变化导致授权失败 开发平台基本信息 补丁下载地址 前言 问题描述 解决方法 开发平台基本信息 芯片: 高通SDM450 版本: Android 9.0 kernel: msm- ...

  7. JEECG微云快速开发平台相关资源下载

     JEECG微云快速开发平台相关资源下载 [复制链接]     jeecg_scott jeecg_scott 当前离线 注册时间 2013-1-6 最后登录 2014-4-30 阅读权限 200 ...

  8. java支付宝网页授权登录界面_支付宝开发平台之第三方授权登录与获取用户信息...

    对于第三方登录,我们常见了,很多应用可以进行第三方登录,我常用的有:QQ.微信.新浪.支付宝等等,今天我们就一起来简单学习一下支付宝第三方授权登录. 打开支付宝开发平台,注册成为开发者,点击开发者中心 ...

  9. C#支付宝当面付扫码支付开发,包括demo代码的修改和蚂蚁金服开发平台的配置

    支付宝开发前配置: 第一步登陆蚂蚁金服开放平台服:支付宝扫码登陆 登录之后看到一下界面,找到自主研发选项,点击开始入驻 配置自己的个人信息: 到此为止我们所有应该做的配置基本上就完成了,但是我们要注意 ...

  10. 更新一波,微信第三方开发平台授权流程

    最近一直忙于微信三方开发平台开发,更新一下,做个记录,微信第三方开发平台授权流程示例: 先看授权流程要拿到的结果: 照例先给出微信授权流程官网页面:https://open.weixin.qq.com ...

最新文章

  1. R语言绘制空白图实战
  2. JAVA后端开发规范
  3. mysql syncbinlog_Mysql之sync-binlog参数
  4. 聊聊tomcat jdbc pool的默认参数及poolSweeper
  5. java socket通信demo_Java Socket通信示例
  6. [03] 为什么要使用异常机制
  7. html一个页面分页代码怎么写,纯JS前端实现分页代码
  8. Bzoj3894文理分科
  9. 信息安全系统设计基础实验四:外设驱动程序设计
  10. 内蒙古2021年高考成绩查询系统入口,2021年内蒙古高考成绩查询网址,内蒙古高考成绩查询系统时间安排...
  11. linux dns配置srv记录,DNS之SRV记录
  12. 东芝计算机配置,东芝Toshiba笔记本电脑开机进入BIOS的方法与bios设置参数介绍(ESC+F1)...
  13. 【每日一题】一起冲击蓝桥杯吧——Day2【蓝桥真题】
  14. tensorflow2没有slim模块
  15. inherits在java中是什么属性_在Java中,要想让一个类继承另一个类,可以使用哪个关键字?()...
  16. python爬虫笔记(3)
  17. python显示血量条,利用Python绘制血药浓度-时间曲线——口服吸收一室模型
  18. MCDF-lab4中部分代码理解
  19. vue设置video图片_vue-video-player视频播放器使用配置详解
  20. 计算机专业白色简历封面,计算机专业个人简历封面模板图

热门文章

  1. window下isa防火墙详细安装
  2. Python自动化办公 | 用Python自动生成数据日报
  3. 2022山东省安全员A证操作证考试题库模拟考试平台操作
  4. 经典上海弄堂线路攻略
  5. Scrapy-spiders下项目运行方法
  6. 荷兰国旗问题python_荷是什么意思 荷字五行属什么
  7. 投票系统C语言程序,C语言课程投票程序系统.doc
  8. 【转载】通过搜狗站长平台查看网站的搜狗流量及搜索关键字
  9. 搜狗推送代码之搜狗百万蜘蛛实现
  10. 按摩新方法(辅助药物治疗肝,肾,肺等慢性疾病)