使用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也是相同的方式(如下图)



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

目录
相关文章
|
1月前
|
编译器 API 语音技术
SDK介绍
【10月更文挑战第21天】
|
2月前
|
JSON 前端开发 API
使用微信JS-SDK调用发票接口的完整开发指南
本文介绍了如何使用微信JS-SDK的`chooseInvoiceTitle`接口来调用微信的发票功能。通过微信发票接口,用户可以选择开具个人或单位发票,并获取相关发票信息,如抬头、税号、公司地址等。在文中,详细描述了JS-SDK的初始化、发票接口的调用方式,并提供了完整的代码示例。文章还介绍了如何处理返回的发票信息,帮助开发者快速集成微信发票功能。
96 2
|
API 开发工具 Windows
M5310-E之SDK开发
build执行编译,build clean清除编译 • win+R进入windows的命令行 • cd到SDK的根目录 • build
127 0
|
网络协议 Java 应用服务中间件
【服务器】支付宝SDK接口调试
【服务器】支付宝SDK接口调试
596 0
|
开发工具 C++
C++初始化SDK
无法初始化
|
设计模式 JavaScript 前端开发
前端JS-SDK那些事
对于前端而言,SDK其实指的是什么? 是API接口的集合还是只是一段代码调用 我的理解是SDK是针对某个平台、某个系统、或者某个软件所特定的开发工具集成,可以是包含多个API也可以只是一个编程工具
1054 0
前端JS-SDK那些事
|
开发工具 Android开发
安装SDK 6.0(二)
安装SDK 6.0(二)
安装SDK 6.0(二)
|
存储 小程序 安全
接入 SDK 结果翻车了?了解 SDK 的那些事
前段时间,二狗子的朋友圈被工信部发布的《关于下架侵害用户权益 App 名单的通报》给刷屏了。公告中指出有 90 款 App 未按照要求完成整改将会下架。而这 90 款 App 涉及全国各地教育、游戏、安全、新闻等诸多领域。
376 0
接入 SDK 结果翻车了?了解 SDK 的那些事
|
开发工具
使用sdk签名方法详解
 说明:   现在使用服务端支付SDK签名比较方便快捷,推荐大家使用,服务端SDK下载地址【点击查看】  签名主要有三种方式:      pageExecute:唤起网页进行支付方式,用于手机网站,电脑网站支付接口。
1564 12
|
Web App开发 开发工具 Android开发
SDK V1.2发布
信息摘要: 优化弱网体验,丢包网络下,延时更低、视频更清晰; 支持WebRTC SDK, 支持Android、iOS、Windows、Mac 适用客户: 在线教育、远程医疗、互动娱乐等音视频开发者版本/规格功能: 1.
1536 0