|
@@ -4,6 +4,7 @@ namespace Ycbl\YinlianPay;
|
|
|
|
|
|
use GuzzleHttp\Exception\GuzzleException;
|
|
|
use Hyperf\Guzzle\ClientFactory;
|
|
|
+use phpDocumentor\Reflection\Types\This;
|
|
|
|
|
|
class JuFu
|
|
|
{
|
|
@@ -17,10 +18,15 @@ class JuFu
|
|
|
*/
|
|
|
protected $result = "";
|
|
|
|
|
|
+ /**
|
|
|
+ * @var bool
|
|
|
+ */
|
|
|
+ protected $error = false;
|
|
|
+
|
|
|
/**
|
|
|
* @var string
|
|
|
*/
|
|
|
- protected $error = "";
|
|
|
+ protected $errorMessage = "";
|
|
|
|
|
|
/**
|
|
|
* @var array
|
|
@@ -35,40 +41,12 @@ class JuFu
|
|
|
public function execute(RequestBase $requestBase)
|
|
|
{
|
|
|
$data = $requestBase->getRequestSignBody();
|
|
|
- $sign = $this->parseSignData($data, $requestBase->getMd5Key());
|
|
|
+ $sign = Sign::parseSignData($data, $requestBase->getMd5Key());
|
|
|
$data = $requestBase->getRequestBody();
|
|
|
$data['signature'] = $sign;
|
|
|
$this->postGbk($requestBase->getUrl(), $data);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 获取签名加密key
|
|
|
- * @param $data
|
|
|
- * @param string $key
|
|
|
- * @return string
|
|
|
- */
|
|
|
- private function parseSignData($data, string $key = ""): string
|
|
|
- {
|
|
|
- if (is_array($data)) {
|
|
|
- $md5Str = urldecode(http_build_query($this->arr_sort($data)));
|
|
|
- } else {
|
|
|
- $md5Str = $data;
|
|
|
- }
|
|
|
- $md5Str = $md5Str . "&key=" . $key;
|
|
|
- return strtoupper(md5($md5Str));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 数组排序
|
|
|
- * @param $arr
|
|
|
- * @return mixed
|
|
|
- */
|
|
|
- private function arr_sort($arr)
|
|
|
- {
|
|
|
- ksort($arr);
|
|
|
- reset($arr);
|
|
|
- return $arr;
|
|
|
- }
|
|
|
|
|
|
/**
|
|
|
* 使用guzzle发送GBK编码 post请求
|
|
@@ -94,11 +72,11 @@ class JuFu
|
|
|
{
|
|
|
$data = json_decode($this->result, true);
|
|
|
if (!$data) {
|
|
|
- $this->error = "失败";
|
|
|
+ $this->setError("失败");
|
|
|
return;
|
|
|
}
|
|
|
if (isset($data['errorcode']) && $data['errorcode'] != "0000") {
|
|
|
- $this->error = $data['errormessage'];
|
|
|
+ $this->setError($data['errormessage']);
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -115,6 +93,15 @@ class JuFu
|
|
|
return $this->result;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param string $message
|
|
|
+ */
|
|
|
+ private function setError(string $message = "")
|
|
|
+ {
|
|
|
+ $this->errorMessage = $message;
|
|
|
+ $this->error = true;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @return string
|
|
|
*/
|
|
@@ -123,6 +110,11 @@ class JuFu
|
|
|
return $this->error;
|
|
|
}
|
|
|
|
|
|
+ public function getErrorMessage(): string
|
|
|
+ {
|
|
|
+ return $this->errorMessage;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @return array
|
|
|
*/
|
|
@@ -130,4 +122,5 @@ class JuFu
|
|
|
{
|
|
|
return $this->body;
|
|
|
}
|
|
|
+
|
|
|
}
|