| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- namespace LdzfPay\Api;
- use LdzfPay\Api\Common\CheckReqDataAndEncrypt;
- use LdzfPay\Api\Common\Logger;
- use LdzfPay\Api\Common\SignUtil;
- use LdzfPay\Api\Common\StringUtil;
- use LdzfPay\Api\Common\HashMap;
- use think\Config;
- /**
- * 商户请求平台参数处理
- */
- Class ReqDataUtil{
- /**
- * @param $map HashMap 参数Map
- * @param $method string http请求方式 get / post
- * @return ReqData 校验加密后的请求参数
- */
- public function makeRequestData($map,$method){
- $mp = clone $map;
- $log = new Logger();
- $log->logInfo("--------------------log start---------------------");
- $funcode = StringUtil::trim($mp->get("service"));
- $log->logInfo("[UMF SDK]本次请求 service = " . $funcode );
- $log->logInfo("[UMF SDK]本次请求原始参数 " .$log->logArrToStr($mp->getInnerArr()));
- //对请求数据进行有效性验证
- CheckReqDataAndEncrypt::doCheck ( $mp );
- //敏感字段加密
- $mp=CheckReqDataAndEncrypt::doEncrypt( $mp );
- //获取请求数据签名密文串
- $sign = $this->getSignData($mp);
- $log->logInfo ("[UMF SDK]本次请求方式 " . $method );
- //获取平台URL
- $url = "https://pay.soopay.net/spay/pay/payservice.do";
- $reqData = new ReqData ();
- //获取GET方式请求数据对象
- if ($method == "get") {
- //获取请求参数
- $param = StringUtil::getPlainSortByAndWithSignType($mp);
- $reqData->setUrl($url . "?" . $param . '&sign=' . urlencode($sign));
- } //获取POST方式请求数据对象
- else if ($method == "post") {
- $reqData->setUrl ( $url );
- $mp->put ( "sign", $sign );
- $reqData->setField ( $mp );
- $log->logInfo("[UMF SDK]本次请求原始参数处理后参数 " .$log->logArrToStr($mp->getInnerArr()));
- }
- return $reqData;
- }
- /**
- * 获取签名密文串
- */
- private function getSignData($map) {
- $log = new Logger ();
- $plain = StringUtil::getPlainSortByAndWithoutSignType($map);
- $priv_key_file = Config::get('ldys_pay.private_file');
- $sign = SignUtil::sign($plain, $priv_key_file);
- return $sign;
- }
- }
|