最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP實(shí)現(xiàn)RSA簽名生成訂單功能【支付寶示例】

 更新時(shí)間:2017年06月06日 10:33:47   作者:小伢子  
這篇文章主要介紹了PHP實(shí)現(xiàn)RSA簽名生成訂單功能,涉及php隨機(jī)字符串及編碼相關(guān)操作技巧,以及支付寶公鑰文件讀取與使用方法,需要的朋友可以參考下

本文實(shí)例講述了PHP實(shí)現(xiàn)RSA簽名生成訂單功能。分享給大家供大家參考,具體如下:

//組合簽名
$a=time();
$b=substr($a, 1);
//生成隨機(jī)訂單號(hào)
$orderid= $b.mt_rand(10000,99999);
//合作身份者id,以2088開(kāi)頭的16位純數(shù)字
$mygoods['partner']="2088011744308664";
//商家賬號(hào)
$mygoods['seller']="2088011744308664";
//訂單號(hào)
$mygoods['out_trade_no']=$orderid;
//主題
$mygoods['subject']=$goods_name;
//商品描述信息
$mygoods['body']=$goods_infro;
//商品價(jià)格
$mygoods['total_fee']=$score;
//服務(wù)器端異步響應(yīng)地址
$mygoods['notify_url']= "http://211.149.220.47/php/notify_url.php";
//排序
$mygoods = argSort($mygoods);
//拼接
$mystr = createLinkstring($mygoods);
//簽名
$sign = rsaSign($mystr);
//對(duì)簽名進(jìn)行urlencode轉(zhuǎn)碼
$sign = urlencode($sign);
//生成最終簽名信息
$orderInfor = $mystr."&sign=".$sign."&sign_type=RSA";
/*******特殊的 驗(yàn)簽支付寶反饋給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&notify_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);
//驗(yàn)簽數(shù)據(jù),驗(yàn)簽成功將返回true 否則 flase
var_dump(verify($str, $sign));
/*************************需要使用到的方法*******************************/
/**
 * 把數(shù)組所有元素,按照“參數(shù)=參數(shù)值”的模式用“&”字符拼接成字符串
 * @param $para 需要拼接的數(shù)組
 * return 拼接完成以后的字符串
 */
function createLinkstring($para) {
  $arg = "";
  while (list ($key, $val) = each ($para)) {
    $arg.=$key."=".$val."&";
  }
  //去掉最后一個(gè)&字符
  $arg = substr($arg,0,count($arg)-2);
  //如果存在轉(zhuǎn)義字符,那么去掉轉(zhuǎn)義
  if(get_magic_quotes_gpc()){$arg = stripslashes($arg);}
  return $arg;
}
/**
 * 對(duì)數(shù)組排序
 * @param $para 排序前的數(shù)組
 * return 排序后的數(shù)組
 */
function argSort($para) {
  ksort($para);
  reset($para);
  return $para;
}
/**
 * RSA簽名
 * @param $data 待簽名數(shù)據(jù)
 * @param $private_key_path 商戶私鑰文件路徑
 * return 簽名結(jié)果
 */
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驗(yàn)簽
 * $data待簽名數(shù)據(jù)
 * $sign需要驗(yàn)簽的簽名
 * 驗(yàn)簽用支付寶公鑰
 * return 驗(yàn)簽是否通過(guò) bool值
 */
function verify($data, $sign) {
  //讀取支付寶公鑰文件
  $pubKey = file_get_contents('key/alipay_public_key.pem');
  //轉(zhuǎn)換為openssl格式密鑰
  $res = openssl_get_publickey($pubKey);
  //調(diào)用openssl內(nèi)置方法驗(yàn)簽,返回bool值
  $result = (bool)openssl_verify($data, base64_decode($sign), $res);
  //釋放資源
  openssl_free_key($res);
  //返回資源是否成功
  return $result;
}

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《php排序算法總結(jié)》、《PHP常用遍歷算法與技巧總結(jié)》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • PHP防止圖片盜用(盜鏈)的方法小結(jié)

    PHP防止圖片盜用(盜鏈)的方法小結(jié)

    這篇文章主要介紹了PHP防止圖片盜用(盜鏈)的方法,結(jié)合實(shí)例形式分析了php通過(guò)修改Apache服務(wù)器配置及目錄訪問(wèn)權(quán)限等方式實(shí)現(xiàn)圖片防盜鏈的相關(guān)操作技巧,需要的朋友可以參考下
    2016-11-11
  • php常用的安全過(guò)濾函數(shù)集錦

    php常用的安全過(guò)濾函數(shù)集錦

    由于越來(lái)越多的項(xiàng)目開(kāi)始使用框架,所以,很多的程序員也不在關(guān)心安全的問(wèn)題!因?yàn)榭蚣芤呀?jīng)幫我們幾乎完美的處理了!但是,個(gè)人認(rèn)為,我們還是需要了解一下常用的安全處理函數(shù)!
    2014-10-10
  • php中把對(duì)象轉(zhuǎn)換為數(shù)組幾種簡(jiǎn)單巧妙的方法

    php中把對(duì)象轉(zhuǎn)換為數(shù)組幾種簡(jiǎn)單巧妙的方法

    在PHP中,對(duì)象是一種復(fù)雜的數(shù)據(jù)類(lèi)型,它可以包含多個(gè)屬性和方法,有時(shí)候我們需要將對(duì)象轉(zhuǎn)換為數(shù)組進(jìn)行操作,比如將對(duì)象存儲(chǔ)到數(shù)據(jù)庫(kù)中,或者將對(duì)象轉(zhuǎn)換為JSON格式等情況,對(duì)象轉(zhuǎn)數(shù)組不能用遞歸實(shí)現(xiàn)轉(zhuǎn)換,本文幾種簡(jiǎn)單巧妙的方法
    2023-09-09
  • PHP+JS實(shí)現(xiàn)的實(shí)時(shí)搜索提示功能

    PHP+JS實(shí)現(xiàn)的實(shí)時(shí)搜索提示功能

    這篇文章主要介紹了PHP+JS實(shí)現(xiàn)的實(shí)時(shí)搜索提示功能,涉及php結(jié)合ajax實(shí)時(shí)傳輸數(shù)據(jù)與字符串的遍歷、匹配相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • PHP中用header圖片地址 簡(jiǎn)單隱藏圖片源地址

    PHP中用header圖片地址 簡(jiǎn)單隱藏圖片源地址

    用header實(shí)現(xiàn)圖片地址的隱藏
    2008-04-04
  • php刪除指定目錄的方法

    php刪除指定目錄的方法

    這篇文章主要介紹了php刪除指定目錄的方法,涉及php遞歸刪除目錄的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • PHP+ajax 無(wú)刷新刪除數(shù)據(jù)

    PHP+ajax 無(wú)刷新刪除數(shù)據(jù)

    首先本例基于留言本整理版修改。無(wú)刷新刪除數(shù)據(jù) (PHP)我們使用了jquery.js來(lái)實(shí)現(xiàn)ajax和dom刪除
    2010-02-02
  • php導(dǎo)出CSV抽象類(lèi)實(shí)例

    php導(dǎo)出CSV抽象類(lèi)實(shí)例

    這篇文章主要介紹了php導(dǎo)出CSV抽象類(lèi)及其用法示例,可實(shí)現(xiàn)循環(huán)導(dǎo)出功能,從而避免內(nèi)存不足的問(wèn)題,需要的朋友可以參考下
    2014-09-09
  • PHP對(duì)象、模式與實(shí)踐之高級(jí)特性分析

    PHP對(duì)象、模式與實(shí)踐之高級(jí)特性分析

    這篇文章主要介紹了PHP對(duì)象、模式與實(shí)踐之高級(jí)特性,結(jié)合實(shí)例形式分析了php面向?qū)ο蟪绦蛟O(shè)計(jì)中的靜態(tài)屬性和方法、抽象類(lèi)、接口、攔截器、克隆對(duì)象等概念與簡(jiǎn)單實(shí)現(xiàn)方法,需要的朋友可以參考下
    2016-12-12
  • PhpMyAdmin中無(wú)法導(dǎo)入sql文件的解決辦法

    PhpMyAdmin中無(wú)法導(dǎo)入sql文件的解決辦法

    PhpMyAdmin中無(wú)法導(dǎo)入sql文件的解決辦法
    2010-01-01

最新評(píng)論

宜丰县| 淅川县| 鸡西市| 德化县| 布尔津县| 景谷| 扶余县| 邵武市| 闸北区| 九龙坡区| 广河县| 秦安县| 武陟县| 邵武市| 阿勒泰市| 安吉县| 汉阴县| 凌云县| 苍南县| 宜都市| 保亭| 盐边县| 高雄县| 绵竹市| 水富县| 本溪市| 法库县| 长汀县| 林口县| 云梦县| 迁西县| 庆元县| 红安县| 曲沃县| 普宁市| 屯昌县| 潮安县| 屏东县| 城口县| 湖南省| 依安县|