支付宝支付之收款码支付

news2025/1/19 19:31:37

文章目录

  • 收款码支付
    • 接入流程
    • 安全设计
    • 系统交互流程
    • 交易状态
    • 统一收单交易支付接口
      • 请求参数
      • 测试结果
      • 查询支付
      • 撤销支付
      • 退款支付
        • 退款结果
        • 退款说明

收款码支付

继:支付宝支付之入门支付

接入流程

在这里插入图片描述

安全设计

支付宝为了保证交易安全采取了一系列安全手段以保证交易安全。主要采用以下安全设计策略,详情可查看 应用安全开发指南。

  • 采用 HTTPS 协议传输交易数据,防止数据被截获、解密。
  • 采用 RSA/RSA2 非对称密钥,明确交易双方的身份,保证交易主体的正确性和唯一性。
  • 付款码定时刷新,防止被拍照。
  • 防止截屏 (截屏后二维码失效)

系统交互流程

在这里插入图片描述

  1. 买家出示钱包内付款码,商家通过扫码设备获取付款码信息,并将付款码上传到 alipay.trade.pay(统一收单交易支付接口)请求支付。
  2. 根据返回的结果,确定支付状态,从而进行相应处理(包括必要时关闭交易), 如图 opt 区块中所示根据付款码支付接口返回公共参数code,付款码支付存在以下四种状态:
结果码描述
请求成功(10000)只表示请求成功,若存在扣款异常可能发生回滚导致扣款失败,必须根据查询接口或者异步通知返回的交易状态进行判断,交易失败,建议关闭交易,更换订单号out_trade_no和买家支付渠道重新扣款。
等待用户付款(10003)由于余额不足、超额等原因导致订单创建但支付未成功,等待用户付款。付款码支付由于是线下面对面支付,需尽快确认交易情况,建议通过 轮询方式 判断交易状态,避免单边账。
未知异常(20000)未知异常,可能由于系统异常或者网络超时等问题导致接口报错,建议调用查询接口确认支付结果,详情可查看 异常处理 。
支付失败(40001- 40006)业务出现未知错误或者系统异常,需要重新检查参数,重新发起支付。详情可查看 异常处理 。

交易状态

在这里插入图片描述

随着订单支付成功、退款、关闭等操作,订单交易的每一个环节 trade_status(交易状态)不同。

  1. 交易创建成功后,用户支付成功,交易状态转为 TRADE_SUCCESS(交易成功)。
  2. 交易成功后,规定退款时间内没有退款,交易状态转为 TRADE_FINISHED(交易完成)。
  3. 交易支付成功后,交易部分退款,交易状态为 TRADE_SUCCESS(交易成功)。
  4. 交易成功后,交易全额退款,交易状态转为 TRADE_CLOSED(交易关闭)。
  5. 交易创建成功后,用户未付款交易超时关闭,交易状态转为 TRADE_CLOSED(交易关闭)。
  6. 交易创建成功后,用户支付成功后,若用户商品不支持退款,交易状态直接转为 TRADE_FINISHED(交易完成)。

注意:交易成功后部分退款,交易状态仍为 TRADE_SUCCESS(交易成功),如果一直部分退款退完所有交易金额则交易状态转为 TRADE_CLOSED(交易关闭),如果未退完所有交易金额,超过有效退款时间后交易状态转为 TRADE_FINISHED(交易完成)不可退款。
继:支付宝支付之入门支付

统一收单交易支付接口

package com.sin.demo.controller;

import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.domain.*;
import com.alipay.api.request.AlipayTradePayRequest;
import com.alipay.api.response.AlipayTradePayResponse;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @createTime 2024/6/29 12:51
 * @createAuthor SIN
 * @use 付款码支付
 */
@RestController
public class AliPayTradePayController {


    // 从配置文件中获取参数值
    @Value("${alipay.appId}")
    private String appId; // 支付宝应用ID

    @Value("${alipay.privateKey}")
    private String privateKey; // 商户应用私钥

    @Value("${alipay.publicKey}")
    private String publicKey; // 支付宝公钥

    @Value("${alipay.gatewayUrl}")
    private String gatewayUrl; // 支付宝网关URL

    /**
     * 创建订单
     * @param subject 交易订单标题
     * @param authCode 支付授权码
     * @param scene 支付场景
     * @param outTradeNo 商户订单号
     * @param totalAount  订单金额
     * @return
     * @throws AlipayApiException
     */
    @GetMapping("/testAliPayTradePay")
    public String testAliPayTradePay(
            String subject,
            String authCode,
            String scene,
            String outTradeNo,
            String totalAount) throws AlipayApiException {
        // 创建支付宝客户端
        AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey, "json", "UTF-8", publicKey, "RSA2");

        // 构造请求参数以调用接口
        AlipayTradePayRequest request = new AlipayTradePayRequest();
        // 用户在线下交易,创建交易信息并支付交易
        AlipayTradePayModel model = new AlipayTradePayModel();

        // 设置交易订单标题
        model.setSubject(subject);

        // 设置支付授权码
        model.setAuthCode(authCode);

        /**
         * 设置支付场景
         *  当面付条码支付场景: bar_code
         *  当面付刷脸支付场景,对应的auth_code为fp开头的刷脸标识串: security_code
         */
        model.setScene(scene);

        // 设置商户订单号
        model.setOutTradeNo(outTradeNo);

        // 设置订单总金额
        model.setTotalAmount(totalAount);

        request.setBizModel(model);

        // 提交支付交易
        AlipayTradePayResponse response = alipayClient.execute(request);
        // 输出相应数据
        System.out.println(response.getBody());

        if (response.isSuccess()) {
            System.out.println("调用成功");
        } else {
            System.out.println("调用失败");
        }

        return response.getBody();
    }
}

将付款码数字传入到setAuthCode()方法中

在这里插入图片描述

如果有扫码设别的话,扫描付款码即可获取支付授权码

在这里插入图片描述

请求参数

参数参数值选项说明
out_trade_nostring(64)必选商户订单号。由商家自定义,64个字符以内,仅支持字母、数字、下划线且需保证在商户端不重复。
total_amountprice(11)必选订单总金额。单位为元,精确到小数点后两位,取值范围:[0.01,100000000]
subjectstring(256)必选订单标题。不可使用特殊字符,如 /,=,& 等
auth_codestring(64)必选支付授权码。当面付场景传买家的付款码(2530开头的长度为1624位的数字,实际字符串长度以开发者获取的付款码长度为准)或者刷脸标识串(fp开头的35位字符串)。
scenestring(32)必选支付场景。
bar_code:当面付条码支付场景;
security_code:当面付刷脸支付场景,对应的auth_code为fp开头的刷脸标识串;
默认值为bar_code。
product_codestring(64)可选产品码。
商家和支付宝签约的产品码。
当面付场景下,如果签约的是当面付快捷版,则传 OFFLINE_PAYMENT;
其它支付宝当面付产品传 FACE_TO_FACE_PAYMENT;
不传则默认使用FACE_TO_FACE_PAYMENT。
seller_idstring(28)可选卖家支付宝用户ID。
当需要指定收款账号时,通过该参数传入,如果该值为空,则默认为商户签约账号对应的支付宝用户ID。
收款账号优先级规则:门店绑定的收款账户>请求传入的seller_id>商户签约账号对应的支付宝用户ID;
注:直付通和机构间联场景下seller_id无需传入或者保持跟pid一致;如果传入的seller_id与pid不一致,需要联系支付宝小二配置收款关系;
goods_detailGoodsDetail[]可选订单包含的商品列表信息,json格式。
goods_id(string64)必选商品的编号
goods_name(string256)必选商品名称
quantity(number32)必选商品数量
price(price9)必选商品单价,单位为元
goods_category(string(24))可选商品类目
categories_tree(string128)可选商品类目树,从商品类目根节点到叶子节点的类目id组成,类目id值使用
show_url(string400)可选商品的展示地址
extend_paramsExtendParams可选业务扩展参数
sys_service_provider_id(string64)可选系统商编号。该参数作为系统商返佣数据提取的依据,请填写系统商签约协议的PID
specified_seller_name(string32)可选特殊场景下,允许商户指定交易展示的卖家名称
card_type(string64)可选卡类型
business_paramsBusinessParams可选商户传入业务信息,具体值要和支付宝约定,应用于安全,营销等参数直传场景,格式为json格式
mc_create_trade_ip(string128)可选商户端创建订单的 IP,须上传正确的用户端外网 IP,支持 ipv4/ipv6 格式;
mc_create_trade_ip和mcCreateTradeIp(旧)参数描述相同,首选mc_create_trade_ip入参,请勿重复入参;
如已入参mcCreateTradeIp(旧),无需新增入参mc_create_trade_ip。
promo_paramsPromoParam可选优惠明细参数,通过此属性补充营销参数。 注:仅与支付宝协商后可用。
actual_order_time(string32)可选存在延迟扣款这一类的场景,用这个时间表明用户发生交易的时间,比如说,在公交地铁场景,用户刷码出站的时间,和商户上送交易的时间是不一样的。
store_idstring(32)可选商户门店编号。
指商户创建门店时输入的门店编号。
operator_idstring(28)可选商户操作员编号。
terminal_idstring(32)可选商户机具终端编号。
query_optionsstring可选返回参数选项。
商户通过传递该参数来定制同步需要额外返回的信息字段,数组格式。如:[“fund_bill_list”,“voucher_detail_list”,“discount_goods_detail”]

测试结果

在这里插入图片描述

在这里插入图片描述

查询支付

商家可调用接口 [alipay.trade.query](统一收单交易查询接口),通过商家网站唯一订单号 out_trade_no 或支付宝交易号trade_no 查询对应订单支付情况。

/**
 * 查询订单
 * @param outTradeNode 商户订单号
 * @return 返回订单信息
 * @throws AlipayApiException
 */
@GetMapping("/getQrCode/{outTradeNode}")
public String selectQrCode(@PathVariable("outTradeNode") String outTradeNode) throws AlipayApiException {
    // 创建支付宝客户端
    AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey,
            "json", "UTF-8", publicKey, "RSA2");
    // 构造请求参数以调用接口
    AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
    // 统一收单线下交易查询
    AlipayTradeQueryModel model = new AlipayTradeQueryModel();

    // 设置订单支付时传入的商户订单号
    model.setOutTradeNo(outTradeNode);

    // 设置查询选项
    List<String> queryOptions = new ArrayList<String>();
    queryOptions.add("trade_settle_info");
    model.setQueryOptions(queryOptions);

    // // 设置支付宝交易号
    // model.setTradeNo("2014112611001004680 073956707");

    request.setBizModel(model);
    AlipayTradeQueryResponse response = alipayClient.execute(request);
    System.out.println(response.getBody());

    if (response.isSuccess()) {
        System.out.println("调用成功");
    } else {
        System.out.println("调用失败");
        // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接
        // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response);
        // System.out.println(diagnosisUrl);
    }
    return response.getBody();
}
参数名参数说明
out_trade_no支付时传入的商户订单号,与 trade_no 必填一个。
trade_no支付时返回的支付宝交易号,与 out_trade_no 必填一个。

在这里插入图片描述

撤销支付

支付交易返回失败或支付系统超时(交易状态不明确),商家可调用接口 [alipay.trade.cancel](统一收单交易撤销接口)通过商家网站唯一订单号 out_trade_no 或支付宝交易号trade_no 撤销交易。

重要说明:

  • 如果此订单用户支付失败,支付宝将关闭此订单,用户无法继续支付。
  • 如果此订单用户支付成功,支付宝将退还订单资金给用户,交易状态变为 trade_closed(交易关闭)。
  • 仅发生支付系统超时或者支付结果未知时可调用本接口撤销交易,其它正常支付的单如需实现相同功能请调用接口 [alipay.trade.refund](统一收单交易退款接口)。
    /**
     * 撤销订单编号
     * @param outTradeNode 商户订单号
     * @return
     * @throws AlipayApiException
     */
    @GetMapping("/cancelQrCode/{outTradeNode}")
    public String cancelQrCode(@PathVariable("outTradeNode") String outTradeNode) throws AlipayApiException {
        // 创建支付宝客户端
        AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey,
                "json", "UTF-8", publicKey, "RSA2");
        AlipayTradeCancelRequest request = new AlipayTradeCancelRequest();
        JSONObject bizContent = new JSONObject();
        bizContent.put("out_trade_no", outTradeNode);
        request.setBizContent(bizContent.toString());
        AlipayTradeCancelResponse response = alipayClient.execute(request);
        if(response.isSuccess()){
            System.out.println("调用成功");
        } else {
            System.out.println("调用失败");
        }
        return response.getBody();
    }
}

在这里插入图片描述

在这里插入图片描述

重要入参说明

注意:请严格按照接口文档中的参数入参,传入非接口文档中的参数是无效的,并且可能会导致请求被拦截或其它异常。

参数名参数说明
out_trade_no支付时传入的商户订单号,与 trade_no 必填一个。
trade_no支付时返回的支付宝交易号,与 out_trade_no 必填一个。

重要出参说明

参数名参数说明
retry_flag是否需要重试,Y/N。
action本次撤销触发的交易动作。close:关闭交易,无退款 。refund:产生了退款。

退款支付

当交易发生之后一段时间内,由于业务原因(如金额错误,用户退款或者对账不平等等)需要退款时,商家可以调用接口 [alipay.trade.refund](统一收单交易退款接口)通过商家网站唯一订单号 out_trade_no 或支付宝交易号trade_no,将对应订单支付款退还给买家,支付宝将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家账号上。支持全额或部分退款。

在这里插入图片描述

退款结果
  • 退款成功:退款是否成功可以根据同步响应的 fund_change 参数来判断,返回值为 Y 则表示退款成功。

  • 退款失败:根据 [错误码]确认是否要重试,重试时注意 out_request_no 需保持一致。

  • 系统异常:无法确认退款结果。

    • 方案一:重试,重试时注意 out_request_no 需保持一致。
    • 方案二:先调用 [alipay.trade.fastpay.refund.query](统一收单交易退款查询接口)确认退款结果,如失败,再发起重试。
退款说明
  • **退款周期:**以签约协议为准,默认12个月,即交易发生后12个月内可发起退款,超期不可退款。
  • **退款方式:**资金原路返回用户账号。
  • **退款退费:**默认退款时手续费退回。
  • 退款时效:支付渠道为花呗、余额等退款即时到账。银行卡的退款时间以银行退款时间为准,一般情况下 2 小时内可到账(若退款到卡失败,退款金额会退回用户支付宝账户余额)。
  • 商家可以在 商家平台 > 对账中心 > 交易订单 中退款。
  • 退款接口会根据外部请求号 out_request_no 幂等返回,因此同一笔交易需要多次部分退款时,必须使用不同的 out_request_no
/**
 * 退款
 * @param outTradeNode 退款账单
 * @param refundAmount 退款金额
 * @return
 * @throws AlipayApiException
 */
@GetMapping("/refundQrCode/{outTradeNode}/{refundAmount}")
public String refundQrCode(
        @PathVariable("outTradeNode") String outTradeNode,
        @PathVariable("refundAmount")Double refundAmount) throws AlipayApiException {
    AlipayClient alipayClient = new DefaultAlipayClient(gatewayUrl, appId, privateKey,
            "json", "UTF-8", publicKey, "RSA2");
    AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
    JSONObject bizContent = new JSONObject();
    // bizContent.put("trade_no", "2021081722001419121412730660");
    bizContent.put("refund_amount", refundAmount);
    bizContent.put("out_trade_no", outTradeNode);

     返回参数选项,按需传入
    //JSONArray queryOptions = new JSONArray();
    //queryOptions.add("refund_detail_item_list");
    //bizContent.put("query_options", queryOptions);

    request.setBizContent(bizContent.toString());
    AlipayTradeRefundResponse response = alipayClient.execute(request);
    if(response.isSuccess()){
        System.out.println("调用成功");
    } else {
        System.out.println("调用失败");
    }
    return response.getBody();
}

在这里插入图片描述

重要入参说明

注意:请严格按照接口文档中的参数入参,传入非接口文档中的参数是无效的,并且可能会导致请求被拦截或其它异常。

参数名参数说明
out_trade_no支付时传入的商户订单号,与 trade_no 必填一个。
trade_no支付时返回的支付宝交易号,与 out_trade_no 必填一个。
out_request_no本次退款请求流水号,部分退款时必传。
refund_amount本次退款金额。

重要出参说明

参数名参数说明
refund_fee该笔交易已退款的总金额。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1880942.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

路由器的ip地址与网关的区别是什么

在网络世界中&#xff0c;路由器扮演着至关重要的角色&#xff0c;它负责数据的传输和网络的互联。而在路由器的设置中&#xff0c;有两个常见的概念&#xff1a;IP地址和网关。那么&#xff0c;路由器的IP地址与网关的区别是什么&#xff1f;下面与虎观代理小二一起了解一下吧…

德国威步的技术演进之路(上):从软件保护到用户体验提升

德国威步自1989年成立以来一直专注于数字安全技术的研究和发展&#xff0c;在软件保护和数字授权领域树立了行业标杆&#xff0c;并在云端许可管理和物联网安全技术方面不断创新。德国威步的成就彰显了其对安全、创新和可持续发展的坚定追求。 德国威步将“完美保护、完美授权…

维卡币(OneCoin)是投资骗局!中国成维卡币传销重灾区,信徒们醒醒吧!创始人被通缉,生死不明!

维卡币(英文名&#xff1a;OneCoin)是一个隐藏在加密货币外表下的庞氏骗局&#xff0c;因传销诈骗和违法吸金被起诉&#xff0c;受害者遍布全球。它的创始人Ruja Ignatova因欺骗和洗钱被列为通缉嫌疑人&#xff0c;成为全球最大金融诈骗案件之一的逃犯&#xff0c;目前美国政府…

INS-GPS组合导航——卡尔曼滤波

系列文章目录 《SAR笔记-卫星轨道建模》 《SAR笔记-卫星轨迹&#xff08;三维建模&#xff09;》 《常用坐标系》 文章目录 前言 一、经典卡尔曼滤波 二、扩展卡尔曼滤波 三、无迹卡尔曼滤波 总结 前言 SAR成像仪器搭载于运动平台&#xff0c;平台的自定位误差将影响SAR…

Go 语言环境搭建

本篇文章为Go语言环境搭建及下载编译器后配置Git终端方法。 目录 安装GO语言SDK Window环境安装 下载 安装测试 安装编辑器 下载编译器 设置git终端方法 总结 安装GO语言SDK Window环境安装 网站 Go下载 - Go语言中文网 - Golang中文社区 还有 All releases - The…

单晶层状氧化物制作方法技术资料 纳离子技术

网盘 https://pan.baidu.com/s/1hjHsXvTXG74-0fDo5TtXWQ?pwd10jk 单晶型高熵普鲁士蓝正极材料及其制备方法与应用.pdf 厘米级铬氧化物单晶及其制备方法和存储器件.pdf 多孔氧化物单晶材料及其制备方法和应用.pdf 大单晶层状氧化物正极材料及其制备方法和应用.pdf 富钠P2相层状…

第四十篇——系统论:如何让整体效用大于部分之和?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 系统论&#xff0c;又从一个大的生态的角度去考虑&#xff0c;我们应该如…

足球虚拟越位线技术FIFA OT(一)

此系列文章用于记录和回顾开发越位线系统的过程&#xff0c;平时工作较忙&#xff0c;有空时更新。 越位线技术 越位技术已被用于图形化分析足球中潜在的越位情况。 自 2018 年将视频助理裁判 &#xff08;VAR&#xff09; 引入比赛规则以来&#xff0c;人们越来越关注准确确…

昇思MindSpore学习总结六——函数式自动微分

神经网络的训练主要使用反向传播算法&#xff0c;模型预测值&#xff08;logits&#xff09;与正确标签&#xff08;label&#xff09;送入损失函数&#xff08;loss function&#xff09;获得loss&#xff0c;然后进行反向传播计算&#xff0c;求得梯度&#xff08;gradients&…

【C语言】--分支和循环(1)

&#x1f37f;个人主页: 起名字真南 &#x1f9c7;个人专栏:【数据结构初阶】 【C语言】 目录 前言1 if 语句1.1 if1.2 else1.3 嵌套if1.4 悬空else 前言 C语言是结构化的程序设计语言&#xff0c;这里的结构指的是顺序结构、选择结构、循环结构。 我们可以用if、switch实现分支…

鸿蒙开发设备管理:【@ohos.multimodalInput.inputDevice (输入设备)】

输入设备 输入设备管理模块&#xff0c;用于监听输入设备连接、断开和变化&#xff0c;并查看输入设备相关信息。比如监听鼠标插拔&#xff0c;并获取鼠标的id、name和指针移动速度等信息。 说明&#xff1a; 本模块首批接口从API version 8开始支持。后续版本的新增接口&…

Todesk远程Ubuntu桌面系统100%但是进不去桌面

1、报错情况 如下图所示&#xff0c;用Todesk远程Ubuntu桌面&#xff0c;看到连接100%了&#xff0c;但是进不去桌面 ubuntu系统看起来的话&#xff0c;已经像被远程成功了 我就首先把todesk卸载重新安装了&#xff0c;后面发现还是这样&#xff0c;于是我就找客服去问了&…

数据结构笔记第2篇:单向链表

1、链表的概念及结构 概念&#xff1a;链表是一种物理结构上非连续、非顺序的存储结构&#xff0c;数据结构的逻辑顺序是通过链表中的指针链接次序实现的。 就像图中的小火车&#xff0c;每节车厢都是一个节点&#xff0c;每个节点都存储着一个数据。它们本身并不是顺序存储的…

python自动化办公之PyPDF2

用到的库&#xff1a;PyPDF2 实现效果&#xff1a;打开pdf文件&#xff0c;把每一页的内容读出来 代码&#xff1a; import PyPDF2 # 打开pdf文件 fileopen(friday.pdf,rb) # 创建pdf文件阅读器对象 readerPyPDF2.PdfReader(file) # 获取pdf文件的总页数 total_pageslen(rea…

SonicSense:声学振动丰富机器人的物体感知能力

在通过声学振动进行物体感知方面&#xff0c;尽管以往的研究已经取得了一些有希望的结果&#xff0c;但目前的解决方案仍然受限于几个方面。首先&#xff0c;大多数现有研究集中在只有少数&#xff08;N < 5&#xff09;基本物体的受限设置上。这些物体通常具有均质材料组成…

抖音直播自动点赞脚本:让点赞变得简单

抖音直播自动点赞脚本&#xff1a;让点赞变得简单 简介 点赞是社交媒体上表达喜爱的一种方式&#xff0c;尤其在抖音这样的平台上&#xff0c;点赞不仅能够增加主播的人气&#xff0c;还能鼓励他们创作更多优质内容。然而&#xff0c;手动点赞往往既耗时又费力。为了解决这个…

远程连接mysql等支持网络服务的数据库

1.ubuntu服务器上的mysql用datagrip连接需要专门去给mysql在服务器上运行的端口开放安全组吗 在使用 DataGrip 或任何其他数据库管理工具远程连接到 Ubuntu 服务器上的 MySQL 时&#xff0c;确实需要确保服务器的防火墙和安全组设置允许从你的 IP 地址访问 MySQL 所运行的端口&…

在Linux (Ubuntu 16) 下安装LabVIEW

用户尝试在Ubuntu 16操作系统上安装LabVIEW&#xff0c;但找不到合适的安装文件来支持Ubuntu。已经下载了运行时文件&#xff0c;并尝试将.rpm包转换为.deb包并安装在Ubuntu上。然而&#xff0c;安装完成后&#xff0c;没有在应用程序中看到LabVIEW的图标。 用户希望能够在Ubu…

Apache Ranger 2.4.0 集成Hive 3.x(Kerbos)

一、解压tar包 tar zxvf ranger-2.4.0-hive-plugin.tar.gz 二、修改install.propertis POLICY_MGR_URLhttp://localhost:6080REPOSITORY_NAMEhive_repoCOMPONENT_INSTALL_DIR_NAME/BigData/run/hiveCUSTOM_USERhadoop 三、进行enable [roottv3-hadoop-01 ranger-2.4.0-hive…

【SGX系列教程】(八)Intel-SGX 官方示例分析(SampleCode)——Seal Unseal

文章目录 一.Seal Unseal原理介绍1.1 Intel SGX supported Sealing Policies 二.源码分析2.1 README2.2 重点代码分析2.2.1 主要代码模块交互流程分析2.2.2 App/App.cpp2.2.3 Enclave_Seal/Enclave_Seal.cpp2.2.4 Enclave_Unseal/Enclave_Unseal.cpp 2.3 总结 三.参考文献四.感…