//组合签名

$a=time();

$b=substr($a, 1);

//生成随机订单号

$orderid= $b.mt_rand(10000,99999);

//合作身份者id,以2088开头的16位纯数字

$mygoods['partner']="2088011744308664";

//商家账号

$mygoods['seller']="2088011744308664";

//订单号

$mygoods['out_trade_no']=$orderid;

//主题

$mygoods['subject']=$goods_name;

//商品描述信息

$mygoods['body']=$goods_infro;

//商品价格

$mygoods['total_fee']=$score;

//服务器端异步响应地址

$mygoods['notify_url']= "http://211.149.220.47/php/notify_url.php";

//排序

$mygoods = argSort($mygoods);

//拼接

$mystr = createLinkstring($mygoods);

//签名

$sign = rsaSign($mystr);

//对签名进行urlencode转码

$sign = urlencode($sign);

//生成最终签名信息

$orderInfor = $mystr."&sign=".$sign."&sign_type=RSA";

/*******特殊的 验签支付宝反馈给App的签名信息*******/

//支付宝反馈给App端信息拆解如下

$str = 'body=%E7%B2%BE%E5%93%81%E5%84%BF%E7%AB%A5%E4%B9%A6%E5%8C%85%E5%96%9C%E6%B4%8B%E6%B4%8B%E7%9A%84¬ify_url=http%3A%2F%2F211.149.220.47%2Fphp%2Fnotify_url.php&out_trade_no=40609294027478&partner=2088011744308664&seller=2088011744308664&subject=%E4%B9%A6%E5%8C%85&success=true&total_fee=0.01';

//被拆解后的支付宝签名

$sign = 'Itorzqous2F7kYWWOpmoB%2FJUYgySRzh%2FOOKMhVhv%2BM48CnFk%2BQCp2cKcSsNGcDTs2AsAk%2BRYTuyMYZkGH56t8jcV2GGFkrJr%2FPxcGRlEK08QadAhImYzy9piVjoW0102lhSJYapiXGBTl5eiZ88RiyRA62D2nJEtH%2FBVXpuq63A%3D';

//得到签名

$sign = urldecode($sign);

//得到待签名字符串

$str = urldecode($str);

//验签数据,验签成功将返回true 否则 flase

var_dump(verify($str, $sign));

/*************************需要使用到的方法*******************************/

/**

* 把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串

* @param $para 需要拼接的数组

* return 拼接完成以后的字符串

*/

function createLinkstring($para) {

$arg = "";

while (list ($key, $val) = each ($para)) {

$arg.=$key."=".$val."&";

}

//去掉最后一个&字符

$arg = substr($arg,0,count($arg)-2);

//如果存在转义字符,那么去掉转义

if(get_magic_quotes_gpc()){$arg = stripslashes($arg);}

return $arg;

}

/**

* 对数组排序

* @param $para 排序前的数组

* return 排序后的数组

*/

function argSort($para) {

ksort($para);

reset($para);

return $para;

}

/**

* RSA签名

* @param $data 待签名数据

* @param $private_key_path 商户私钥文件路径

* return 签名结果

*/

function rsaSign($data, $private_key_path) {

$priKey = file_get_contents($private_key_path);

$res = openssl_get_privatekey($priKey);

openssl_sign($data, $sign, $res);

openssl_free_key($res);

//base64编码

$sign = base64_encode($sign);

return $sign;

}

/**RSA验签

* $data待签名数据

* $sign需要验签的签名

* 验签用支付宝公钥

* return 验签是否通过 bool值

*/

function verify($data, $sign) {

//读取支付宝公钥文件

$pubKey = file_get_contents('key/alipay_public_key.pem');

//转换为openssl格式密钥

$res = openssl_get_publickey($pubKey);

//调用openssl内置方法验签,返回bool值

$result = (bool)openssl_verify($data, base64_decode($sign), $res);

//释放资源

openssl_free_key($res);

//返回资源是否成功

return $result;

}

转自:http://www.jb51.net/article/115475.htm

PHP 做 RSA 签名 生成订单(支付宝例子)

/组合签名 $a=time(); $b=substr($a, 1); //生成随机订单号 $orderid= $b.mt_rand(10000,99999); //合作身份者id,以2088开头的16 ...

开发支付宝支付用DELPHI实现 RSA签名

近来根据业务需求 在ERP中集成了微信支付,支付宝支付,开发支付宝支付时最大的障碍就是RSA签名,找了很多资料,最终用 下了个libeay32.pas  根据网上资料最终解决了问题 function  ...

RSA密钥生成、加密解密、签名验签

RSA 非对称加密公钥加密,私钥解密 私钥签名,公钥验签 下面是生成随机密钥对: //随机生成密钥对 KeyPairGenerator keyPairGen = null; try { keyPair ...

Android集成微信分享功能应用签名生成方法及分享不生效的问题

通过友盟sdk集成微博.微信.qq等分享功能时,微博和qq很顺利,但在做微信集成时一直不成功.主要问题还是之前在微信开放平台申请创建移动应用时,对应用签名没有填写对,走了很多弯路现总结出来,加深记忆避 ...

支付宝RSA签名之Delphi实现

Delphi有个很大的问题就是,厂商的不作为(没有封装标准的Cipher类库),让大家自己造轮子. 今天的轮子就是RSA签名,由于Delphi没有封装Cipher类库,所以只的自己写了. 因为要在Fi ...

Django订单接入支付宝

1.. 去支付宝申请 https://open.alipay.com/platform/home.htm 注:因为创建应用正式接入支付宝需要营业执照,所以我们可以使用沙箱环境来测试. 2. 一次选择管 ...

(转)Python rsa 签名与验证 sign and verify

转自:http://wawehi.blog.163.com/blog/static/143780306201371361120515/ 网上一搜一大把的 python rsa 相关的东西,python ...

java/php/c#版rsa签名以及java验签实现--转

在开放平台领域,需要给isv提供sdk,签名是Sdk中需要提供的功能之一.由于isv使用的开发语言不是单一的,因此sdk需要提供多种语言的版本.譬如java.php.c#.另外,在电子商务尤其是支付领 ...

java/php/c#版rsa签名以及验签实现

php支付宝的签名处理,PHP实现RSA签名生成订单功能【支付宝示例】相关推荐

  1. php+rsa生成签名sign,PHP 做 RSA 签名 生成订单(支付宝例子)

    /组合签名 $a=time(); $b=substr($a, 1); //生成随机订单号 $orderid= $b.mt_rand(10000,99999); //合作身份者id,以2088开头的16 ...

  2. 支付宝签名php,PHP实现RSA签名生成订单功能【支付宝示例】

    PHP实现RSA签名生成订单功能[支付宝示例] 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  PHP实现RSA签名生成订单功能[支付宝示例].txt ] (友情提 ...

  3. 微信小程序-RSA签名、验签、加密、解密

    title: [小程序]RSA签名 type: categories date: 2017-05-27 17:01:15 categories: 小程序 tags: [RSA, 签名] 一个适用于微信 ...

  4. iOS小技能:RSA签名、验签、加密、解密的原理

    文章目录 引言 I RSA算法流程 1.1 算法原理 1.2 公钥和私钥的生成 1.3 RSA 加密 1.4 RSA 解密 1.5 RSA加密.签名区别 1.6 RSA签名的过程 II 代码实现 2. ...

  5. 支付宝 .NET SDK 报错:RSA签名遭遇异常,请检查私钥格式是否正确。

    AlipaySDKNet 是 .NET 平台下用于对接支付宝支付的官方 SDK.Alipay SDK for .NET 让您不用复杂编程即可访问支付宝开放平台开放的各项能力,SDK可以自动帮您满足能力 ...

  6. java支付宝rsa2签名_JAVA RSA签名 解签(利用支付宝封装的函数)

    package com.mlgd.api.util; import com.alibaba.fastjson.JSON; import com.alipay.api.AlipayApiExceptio ...

  7. 叙述无保密机制的rsa签名过程_安全系列之——RSA的公钥私钥有多少人能分的清楚?RSA的签名验签与加密解密如何使用公私钥?...

    在对接很多的互联网公司的开发平台时,这些互联网公司未来自身平台的安全,都会需要调用方签名确认调用方的身份是合法的,同时未来信息网络传输的安全可能还需要加密解密.比如对接支付宝.微信开放平台时,需要配置 ...

  8. C++ 使用OpenSSL 基于SHA1摘要的RSA签名及验签 与Java平台互通

    文章目录 准备 C++ Java RSASignature.java RSAEncrypt.java Base64.java 准备 配置OpenSSL环境 配置VS2015环境 生成公私秘钥 然后你们 ...

  9. Go-数字签名详解与Rsa数字签名代码

    目录 数字签名概述 数字签名和手写签名的不同 数字签名与消息加密/认证 数字签名的步骤 Go中使用Rsa进行数字签名 crypto/rsa包 crypto/sha512包 代码 截图 参考 数字签名概 ...

  10. TP5 对接支付宝支付接口开发详细步骤(证书签名方式)

    注: 支付宝支付分为支付宝公钥和证书签名方式两种,如果需要使用退款功能要用证书签名方式开发 php接入支付宝证书方式签名 支付宝 PHP SDK 分为老版和新版,老版本的 PHP SDK(v3.4.2 ...

最新文章

  1. win10 64位SSDT函数索引动态查找
  2. 计算机专业i7 7500u,8550U比7500U提升多少 8550U和7500U的区别-太平洋电脑网
  3. linux之文本比较工具
  4. 【转】深入了解CPU两大架构ARM与X86
  5. Ubuntu18.04安装Docker并构建JDK1.8镜像
  6. HDU2072 单词数(字典树)
  7. 黑客事件中如何实现利益最大化?
  8. 冰点还原精灵DeepFreeze重启后图标不见了
  9. Redis(八):进阶篇 - 事务
  10. 华为设备配置Easy IP 地址转换
  11. mt管理器图片在哪个文件夹_微信apk用mt管理器 替换主界面背景图片是那个文件? 其他文件怎么替换 不要视频...
  12. 手动开根号方法--数学
  13. 所有程序员会面临的问题:程序员只能吃青春饭?
  14. shoug oracle,SHOUG User Group Young Expert Program
  15. python_17(sql)
  16. leetcode sql:游戏玩法分析 III
  17. 事务隔离级别脏读幻读_脏读和未提交读隔离级别
  18. JAVA.SE Socket网络编程
  19. 计算机控制电梯如需改变功能 则,电梯维修项目教程 教学课件 作者 孙文涛附加答案试卷综合实训三模拟试题(13).doc...
  20. python 协程一

热门文章

  1. 智能影视站系统 光线 CMS1.5 正式版
  2. python中out函数_Python中函数的使用
  3. 如何修复cdn服务器异常,cdn服务器连接异常解决方法
  4. 小米手机连接电脑(Mac)刷miui12开发版的操作指南
  5. ncnn 载入insightface训练好的性别年龄识别模型
  6. 【没有刀剑,如何行走江湖】半晌私语(上)
  7. python关联分析库_使用Python进行数据关联分析
  8. lack名词形式_lack的用法
  9. 收到微软律师函怎么办?当接到微软律师函的处理办法
  10. [IOI2018]组合动作——构造