// // // // // // // // // // // // // // 1 // // // '; if(!$xml){exit;} $input = new WxPayOrderQuery(); $result =$input->FromXml($xml); $config = new WxPayConfig(); $_sign=$result['sign']; unset($result['sign']); $sign = $this->getSign($result, $config); if($_sign==$sign && array_key_exists("return_code", $result) && array_key_exists("result_code", $result) && $result["return_code"] == "SUCCESS" && $result["result_code"] == "SUCCESS"){ $fee=$result['total_fee']/100; model('UserRecharge')->pay_notify_success($result['out_trade_no'],$fee); exit(''); //TS // $out_trade_no=$result['out_trade_no']; // $fee=$result['total_fee']/100; // $transaction_id=$result['transaction_id']; // $order=DB::name('order')->where(['order_no'=>$out_trade_no, 'status'=>1, 'price'=>$fee,])->find(); // //$order=DB::name('order')->where(['order_no'=>$orderid, 'status'=>1, ])->find(); // if(isset($order['id'])){ // //业务逻辑 // $arr['status']=2; // $arr['paytime']=time(); // $res=DB::name('order')->where('id',$order['id'])->update($arr); // if($res){ // //增加用户米钻及充值记录 // userStoreInc($order['user_id'],$order['mizuan'],11,'mizuan'); // exit('OK'); // } // } // exit('fail'); } } private function getSign($params, $config) { ksort($params); //将参数数组按照参数名ASCII码从小到大排序 foreach ($params as $key => $item) { if (!empty($item)) { //剔除参数值为空的参数 $newArr[] = $key.'='.$item; // 整合新的参数数组 } } $stringA = implode("&", $newArr); //使用 & 符号连接参数 $stringSignTemp = $stringA."&key=".$config->GetKey(); //拼接key if($config->GetSignType() == "MD5"){ $stringSignTemp = md5($stringSignTemp); } else if($config->GetSignType() == "HMAC-SHA256") { $stringSignTemp = hash_hmac("sha256",$stringSignTemp ,$config->GetKey()); } else { throw new WxPayException("签名类型不支持!"); } $sign = strtoupper($stringSignTemp); //将所有字符转换为大写 return $sign; } }