使用sdk验签方法详解

简介: 说明:正常接口使用 AlipaySignature.rsaCheckV1,sign_type不参与签名    特殊说明:AlipaySignature.rsaCheckV2方法生活号异步通知需要使用,会保留sign_type参数参与验签。

说明:正常接口使用 AlipaySignature.rsaCheckV1,sign_type不参与签名    

特殊说明:AlipaySignature.rsaCheckV2方法生活号异步通知需要使用,会保留sign_type参数参与验签。

代码示例:   

php语言:

function checkSign($arr){
    $aop = new AopClient();
    $aop->alipayrsaPublicKey = $this->alipay_public_key;
    $result = $aop->rsaCheckV1($arr, $this->alipay_public_key, $this->signtype);
    return $result;
}

 java语言:

//获取支付宝POST过来反馈信息
Map<String,String> params = new HashMap<String,String>();
Map requestParams = request.getParameterMap();
for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
    String name = (String) iter.next();
    String[] values = (String[]) requestParams.get(name);
    String valueStr = "";
    for (int i = 0; i < values.length; i++) {
        valueStr = (i == values.length - 1) ? valueStr + values
                : valueStr + values + ",";
    }
    //乱码解决,这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化
    //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "gbk");
    params.put(name, valueStr);
}
    //商户订单号
    String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");
    //支付宝交易号
    String trade_no = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");
    //交易状态
    String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"),"UTF-8");
 
    //计算得出通知验证结果
    boolean verify_result = AlipaySignature.rsaCheckV1(params, AlipayConfig.ALIPAY_PUBLIC_KEY, AlipayConfig.CHARSET, "RSA2");
    if(verify_result){//验证成功
        if(trade_status.equals("TRADE_FINISHED")){
        } else if (trade_status.equals("TRADE_SUCCESS")){
        }
        out.clear();
        out.println("success"); //请不要修改或删除
    }else{//验证失败
        out.println("fail");
    }

建议:如果是php,java,.NET可以参考手机网站官方demo异步通知验签(因为所有支付接口验签方式都是一样的方式)

1.demo下载地址:点击查看demo  

2.只是用notify_url相关关联文件即可,php也是相同的方式(如下图) 

常见问题 

验签失败自查:https://openclub.alipay.com/read.php?tid=1598

使用工具验签方法:https://openclub.alipay.com/read.php?tid=2208


大家如果在测试过程中有什么疑问欢迎在帖子下方追问吐

目录
相关文章
|
3月前
|
网络安全 开发工具 Python
【Azure事件中心】使用Python SDK(Confluent)相关方法获取offset或lag时提示SSL相关错误
【Azure事件中心】使用Python SDK(Confluent)相关方法获取offset或lag时提示SSL相关错误
|
3月前
|
Java 开发工具 Windows
【Azure Developer】调用SDK的runPowerShellScript方法,在Azure VM中执行PowerShell脚本示例
【Azure Developer】调用SDK的runPowerShellScript方法,在Azure VM中执行PowerShell脚本示例
|
3月前
|
缓存 JavaScript 前端开发
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)
微信 JS-SDK Demo “分享信息设置” API 及数字签名生成方法(NodeJS版本)更新时间(2020-10-29)
|
6月前
|
Web App开发 前端开发 JavaScript
网页浏览和编辑DWG快速入门的方法(WEB CAD SDK)
MxDraw云图在线CAD解决方案,包括MxDraw、MxCAD开发包、图纸转换程序和后端服务。支持多种平台和CPU架构,推荐使用最新版Chrome或Edge浏览器。提供AutoCAD各版本dwg格式支持,具备三维和二维编辑功能。提供入门开发指南和功能丰富的示例。用户可下载开发包进行功能演示,包括在线预览和编辑CAD图纸。
网页浏览和编辑DWG快速入门的方法(WEB CAD SDK)
|
6月前
|
存储 监控 开发工具
对象存储OSS产品常见问题之python sdk中的append_object方法支持追加上传xls文件如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
220 9
|
6月前
|
Java 开发工具 Maven
sdk2.9.2的版本缺少方法
在IntelliJ IDEA中,SDK版本2.9.2。当前阿里云Maven仓库被用于获取SDK。需要新SDK
49 0
|
JSON 物联网 网络性能优化
NET Core 跨平台物联网开发 SDK属性、方法、委托、类(四)
NET Core 跨平台物联网开发 SDK属性、方法、委托、类(四)
281 0
|
开发工具 iOS开发 内存技术
产品百科 | RTC iOS SDK 摄像头管理方法
本章节为您介绍了在进行音视频通话之前,对摄像头进行管理的实现方法。
产品百科 | RTC iOS SDK 摄像头管理方法
|
开发工具 Android开发 内存技术
产品百科 | RTC Android SDK 摄像头管理方法
本章节为您介绍了在进行音视频通话之前,对摄像头进行管理的实现方法。
产品百科 | RTC Android SDK 摄像头管理方法
|
开发工具 iOS开发
产品百科 | RTC iOS SDK 播放音效文件的接口方法
阿里云 RTC SDK 为您提供伴奏文件和音效文件的相关接口方法,您可以通过本文了解其具体的实现方法。
产品百科 | RTC iOS SDK 播放音效文件的接口方法