ReqDataUtil.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace LdzfPay\Api;
  3. use LdzfPay\Api\Common\CheckReqDataAndEncrypt;
  4. use LdzfPay\Api\Common\Logger;
  5. use LdzfPay\Api\Common\SignUtil;
  6. use LdzfPay\Api\Common\StringUtil;
  7. use LdzfPay\Api\Common\HashMap;
  8. use think\Config;
  9. /**
  10. * 商户请求平台参数处理
  11. */
  12. Class ReqDataUtil{
  13. /**
  14. * @param $map HashMap 参数Map
  15. * @param $method string http请求方式 get / post
  16. * @return ReqData 校验加密后的请求参数
  17. */
  18. public function makeRequestData($map,$method){
  19. $mp = clone $map;
  20. $log = new Logger();
  21. $log->logInfo("--------------------log start---------------------");
  22. $funcode = StringUtil::trim($mp->get("service"));
  23. $log->logInfo("[UMF SDK]本次请求 service = " . $funcode );
  24. $log->logInfo("[UMF SDK]本次请求原始参数 " .$log->logArrToStr($mp->getInnerArr()));
  25. //对请求数据进行有效性验证
  26. CheckReqDataAndEncrypt::doCheck ( $mp );
  27. //敏感字段加密
  28. $mp=CheckReqDataAndEncrypt::doEncrypt( $mp );
  29. //获取请求数据签名密文串
  30. $sign = $this->getSignData($mp);
  31. $log->logInfo ("[UMF SDK]本次请求方式 " . $method );
  32. //获取平台URL
  33. $url = "https://pay.soopay.net/spay/pay/payservice.do";
  34. $reqData = new ReqData ();
  35. //获取GET方式请求数据对象
  36. if ($method == "get") {
  37. //获取请求参数
  38. $param = StringUtil::getPlainSortByAndWithSignType($mp);
  39. $reqData->setUrl($url . "?" . $param . '&sign=' . urlencode($sign));
  40. } //获取POST方式请求数据对象
  41. else if ($method == "post") {
  42. $reqData->setUrl ( $url );
  43. $mp->put ( "sign", $sign );
  44. $reqData->setField ( $mp );
  45. $log->logInfo("[UMF SDK]本次请求原始参数处理后参数 " .$log->logArrToStr($mp->getInnerArr()));
  46. }
  47. return $reqData;
  48. }
  49. /**
  50. * 获取签名密文串
  51. */
  52. private function getSignData($map) {
  53. $log = new Logger ();
  54. $plain = StringUtil::getPlainSortByAndWithoutSignType($map);
  55. $priv_key_file = Config::get('ldys_pay.private_file');
  56. $sign = SignUtil::sign($plain, $priv_key_file);
  57. return $sign;
  58. }
  59. }