OutsideAppService.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Name: 芸众商城系统
  5. * Author: 广州市芸众信息科技有限公司
  6. * Profile: 广州市芸众信息科技有限公司位于国际商贸中心的广州,专注于移动电子商务生态系统打造,拥有芸众社交电商系统、区块链数字资产管理系统、供应链管理系统、电子合同等产品/服务。官网 :www.yunzmall.com www.yunzshop.com
  7. * Date: 2022/1/6
  8. * Time: 11:36
  9. */
  10. namespace app\outside\services;
  11. class OutsideAppService
  12. {
  13. /**
  14. * 年月日 + 三位公众号 + 5位随机数
  15. * @return string
  16. */
  17. public static function createAppId()
  18. {
  19. $currentUniacid = \YunShop::app()->uniacid;
  20. $unique = hexdec(uniqid());
  21. $random = substr($unique, -5, 5);
  22. $uniacid = str_pad($currentUniacid,3,0,STR_PAD_LEFT);
  23. $appId = date("Ymd"). $uniacid.$random;
  24. return $appId;
  25. }
  26. public static function createSecret($appId = '')
  27. {
  28. if (empty($appId)) {
  29. $appId = self::createAppId();
  30. }
  31. return strtoupper(md5($appId.str_random()));
  32. }
  33. public function jiamihash($data, $appSecret, $isBinary = false)
  34. {
  35. $sign = hash_hmac('sha256', $data, $appSecret,$isBinary);
  36. return $sign;
  37. }
  38. /**
  39. * 将参数转换成k=v拼接的形式
  40. * @param $parameter
  41. * @return string
  42. */
  43. public function toQueryString($parameter)
  44. {
  45. //按key的字典序升序排序,并保留key值
  46. ksort($parameter);
  47. $strQuery="";
  48. foreach ($parameter as $k=>$v){
  49. //不参与签名、验签
  50. if($k == "sign"){
  51. continue;
  52. }
  53. if($v === null) {$v = '';}
  54. $strQuery .= strlen($strQuery) == 0 ? "" : "&";
  55. $strQuery.=$k."=".$v;
  56. }
  57. return $strQuery;
  58. }
  59. }