Parcourir la source

fix zhixin callback sign

zb727 il y a 1 an
Parent
commit
d89c6b8c6f

+ 1 - 1
helper/refill/api/mh/zhixin_fast/RefillCallBack.php

@@ -9,7 +9,7 @@ class RefillCallBack implements refill\IRefillCallBack
 {
     public function verify($params): bool
     {
-        $sign = config::sign($params);
+        $sign = config::cbsign($params,config::callback_keys);
         if ($params['sign'] == $sign) {
             return true;
         } else {

+ 13 - 0
helper/refill/api/mh/zhixin_fast/config.php

@@ -14,6 +14,7 @@ class config
     public const ERRCODES = [600,602,603,606,622,623,624,615,637,751];
 
     const ExtHeaders = ['Content-Type: application/json;charset=UTF-8'];
+    const callback_keys = ['client_order_no', 'deduction_amount', 'elecardID', 'phone_no', 'product_type', 'recharge_status', 'up_order_no'];
 
     public const ERRMSG = [
         600 => '商户禁用,接口已关闭',
@@ -41,4 +42,16 @@ class config
 
         return strtolower(md5($body));
     }
+
+    public static function cbsign($params,$keys)
+    {
+        $body = "";
+        foreach ($keys as $key) {
+            $val = $params[$key] ?? '';
+            $body .= "$key" . "$val";
+        }
+
+        $body .= config::SECRET_KEY;
+        return strtolower(md5($body));
+    }
 }