| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?php
- namespace LdzfPay\Api\Common;
- use LdzfPay\Api\Common\HashMap;
- /**
- * 字符串处理工具类
- */
- Class StringUtil
- {
- /**
- * @param $map HashMap 使用&符号组织签名明文串排序a-z 包含sign_type字段 做了urlencode
- * @return string
- */
- public static function getPlainSortByAndWithSignType($map)
- {
- $arg = "";
- $paramter = array();
- if ((!$map->isEmpty()) && ($map->size() > 0)) {
- $keys = $map->keys();
- foreach ($keys as $key) {
- //sign_type 不需要参与RAS签名
- $paramter[$key . "=" . urlencode(trim($map->get($key)))] = $key . "=" . urlencode(trim($map->get($key)));
- }
- //字母a到z排序后的数组
- $sort_array = StringUtil::arg_sort($paramter);
- while (list ($key, $val) = each($sort_array)) {
- $arg .= $val . "&";
- }
- $arg = substr($arg, 0, count($arg) - 2); //去掉最后一个&字符
- return $arg;
- } else {
- die ("[UMF SDK]获取请求参数明文字符串失败:传入参数为空!");
- }
- }
- /**
- * @param $map HashMap 使用&符号组织签名明文串排序a-z 去除sign_type字段 不做urlencode
- * @return string
- */
- public static function getPlainSortByAndWithoutSignType($map)
- {
- $arg = "";
- $paramter = array();
- if ((!$map->isEmpty()) && ($map->size() > 0)) {
- $keys = $map->keys();
- foreach ($keys as $key) {
- //sign_type 不需要参与RAS签名
- if ("sign_type" != $key) {
- $paramter[$key . "=" . trim($map->get($key))] = $key . "=" . trim($map->get($key));
- }
- }
- //字母a到z排序后的数组
- $sort_array = StringUtil::arg_sort($paramter);
- foreach($sort_array as $v){
- if($arg){
- $arg .= "&".$v;
- }else{
- $arg .= $v;
- }
- }
- // while (list ($key, $val) = each($sort_array)) {
- // $arg .= $val . "&";
- // }
- // $arg = substr($arg, 0, count($arg) - 2); //去掉最后一个&字符
- return $arg;
- } else {
- die ("[UMF SDK]获取请求参数明文字符串失败:传入参数为空!");
- }
- }
- /**
- * 去除字符串前后空格,如果字符串为null则返回空串""
- */
- public static function trim($str){
- if ($str == null) {
- return "";
- } else {
- return trim($str);
- }
- }
- /**
- * @param $array array() 对数组进行a-z升序排列
- * @return mixed
- */
- public static function arg_sort($array){
- asort($array);
- return $array;
- }
- public static function String2Hex($string){
- $hex='';
- for ($i=0; $i < strlen($string); $i++){
- $hex .= dechex(ord($string[$i]));
- }
- return $hex;
- }
- public static function Hex2String($hex){
- $string='';
- for ($i=0; $i < strlen($hex)-1; $i+=2){
- $string .= chr(hexdec($hex[$i].$hex[$i+1]));
- }
- return $string;
- }
- }
|