PHP 做 RSA 簽名 生成訂單

liuxuhui發表於2021-09-09


//組合簽名$a=time();$b=substr($a, 1);//生成隨機訂單號$orderid$b.mt_rand(10000,99999);//合作身份者id,以2088開頭的16位純數字$mygoods['partner']="2088011744308664";//商家賬號$mygoods['seller']="zfb@sinoglobal.com.cn";//訂單號$mygoods['out_trade_no']=$orderid;//主題$mygoods['subject']=$goods_name;//商品描述資訊$mygoods['body']=$goods_infro;//商品價格$mygoods['total_fee']=$score;//伺服器端非同步響應地址$mygoods['notify_url']= "";//排序$mygoods = argSort($mygoods);//拼接$mystr = createLinkstring($mygoods);//簽名$sign = rsaSign($mystr);//對簽名進行urlencode轉碼$sign = urlencode($sign);//生成最終簽名資訊$orderInfor $mystr."&sign=".$sign."&sign_type=RSA"; 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;}function argSort($para) {    ksort($para);    reset($para);    return $para;} 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;}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756/viewspace-2810888/,如需轉載,請註明出處,否則將追究法律責任。

相關文章