yingzi 2 年之前
父節點
當前提交
3c8cc5f72c
共有 1 個文件被更改,包括 36 次插入3 次删除
  1. 36 3
      library/utils/WxpayV2.php

+ 36 - 3
library/utils/WxpayV2.php

@@ -87,9 +87,16 @@ class WxpayV2{
         }
         }
         //组装支付参数
         //组装支付参数
         $payInfo=array();
         $payInfo=array();
-        $data=$this->v2makeSign(["appId"=>$this->config["APPID"],"prepay_id"=>$resuleAr["prepay_id"]]);
-        $data["payData"] = $params;
-        return $data;
+//        $data=$this->v2makeSign(["appId"=>$this->config["APPID"],"prepay_id"=>$resuleAr["prepay_id"]]);
+        
+        $info['appId'] = $this->config["APPID"];
+        $info['timeStamp'] = time();
+        $info['nonceStr'] = Formatter::nonce(); //生成随机数,下面有生成实例,统一下单接口需要
+        $info["package"] = "prepay_id=".$resuleAr["prepay_id"];
+        $info['signType'] = 'MD5';
+        $info['paySign'] = $this->MakeSign2($info);
+        
+        return $info;
     }
     }
     
     
     public function v2makeSign($info){
     public function v2makeSign($info){
@@ -109,6 +116,32 @@ class WxpayV2{
         return $params;
         return $params;
     }
     }
     
     
+     public function MakeSign2($values) {
+        //签名步骤一:按字典序排序参数
+        ksort($values);
+        $string = $this->ToUrlParams($values);
+        //签名步骤二:在string后加入KEY
+        $string = $string . "&key=" . $this->config["ApiV2Key"];
+        //签名步骤三:MD5加密
+        $string = md5($string);
+        //签名步骤四:所有字符转为大写
+        $result = strtoupper($string);
+        return $result;
+    }
+    /**
+     * 参数数组转换为url参数
+     * @param array $urlObj
+     */
+    private function ToUrlParams($urlObj) {
+        $buff = "";
+        foreach ($urlObj as $k => $v) {
+            $buff .= $k . "=" . $v . "&";
+        }
+        $buff = trim($buff, "&");
+        return $buff;
+    }
+    
+    
     /**
     /**
      * 查询订单
      * 查询订单
      * @param type $out_trade_no 商户订单号
      * @param type $out_trade_no 商户订单号