久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

PHP實現RSA簽名生成訂單功能【支付寶示例】

這篇文章主要介紹了PHP實現RSA簽名生成訂單功能,涉及php隨機字符串及編碼相關操作技巧,以及支付寶公鑰文件讀取與使用方法,需要的朋友可以參考下

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

//組合簽名
$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;
}

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php字符串(string)用法總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》、《php排序算法總結》、《PHP常用遍歷算法與技巧總結》、《PHP數學運算技巧總結》、《PHP數組(Array)操作技巧大全》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了PHP有序表查找之插值查找算法,簡單分析了插值查找算法的概念、原理并結合實例形式分析了php實現針對有序表插值查找的相關操作技巧,需要的朋友可以參考下
下面小編就為大家分享一篇ThinkPHP整合datatables實現服務端分頁的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP實現APP微信支付的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP實現的多維數組排序算法,結合實例形式對比分析了php針對多維數組及帶有鍵名的多維數組進行排序相關操作技巧與注意事項,需要的朋友可以參考下
這篇文章主要為大家詳細介紹了php結合ajaxuploadfile實現無刷新文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本篇文章給大家詳細介紹了PHP開發接口使用RSA進行加密解密方法,對此有興趣的朋友可以學習下。
主站蜘蛛池模板: 国产一区影院 | www.青青草 | 日韩国产一区二区三区 | 91日韩在线 | 亚洲国产精选 | 亚洲精品一区二区在线观看 | 欧美日韩一区二区三区视频 | 一级二级三级在线观看 | 亚洲国产精品久久久久 | 在线免费av电影 | 日韩欧美日韩在线 | 国产一区二区三区四区 | 欧美多人在线 | 韩国毛片一区二区三区 | 国产成人一区二区三区电影 | 久久精品无码一区二区三区 | 国产精品视频久久久 | 精品国产一区二区三区久久久久久 | 国产蜜臀 | 97精品国产手机 | 99久久国产综合精品麻豆 | 精品在线一区 | 欧美激情在线播放 | 欧美一级淫片免费视频黄 | 九九热精品视频 | 日本福利一区 | 国产乱码久久久久久 | 亚洲国产aⅴ精品一区二区 免费观看av | 国产精品久久久久久一区二区三区 | 国产精品中文字幕在线播放 | 爱草在线| 日韩亚洲视频 | 欧美韩一区二区 | 久久精品视频一区二区 | 国产精品成人国产乱 | 欧洲一区二区三区 | 日韩在线观看中文字幕 | 久久丝袜视频 | 特级a欧美做爰片毛片 | 特级毛片爽www免费版 | 日韩一区二区三区视频 |