$post['mid'], ]; $fields = 'qian_ke_key'; //获取秘钥 self::$appKey = $PayOrderModel->getFindField($where, $fields);//获取钱客云商户密钥 $sign = $this->signGenerate($post);//加签 //签名比对 if ($sign !== $post['sign']) { //签名错误 return "success"; } file_put_contents('./MoneyGuest.txt', date('Y-m-d H:i:s') . ' notify2: 验签成功' . "\r\n", FILE_APPEND); if ($post && $post['status'] == 2) { //存在,支付状态等于2 //修改数据库数据 $PayOrderModel = D('RetailPayOrder'); $Order = $PayOrderModel->getFind(array('out_trade_no' => strval($post['outTradeNo']))); file_put_contents('./MoneyGuest.txt', date('Y-m-d H:i:s') . ' notify3: ' . M()->_sql() . "\r\n", FILE_APPEND); if (!empty($Order)) { if ($Order['order_state'] == 'WAIT_BUYER_PAY') { $updateData = array( $PayOrderModel::ORDER_STATE => 'SUCCESS', $PayOrderModel::EXTEND_CONTENT => $postArr, $PayOrderModel::TRADE_DATE => time(), $PayOrderModel::TRADE_NO => $post['orderNumber'] ); $PayOrderModel->updateOrder(array($PayOrderModel::ID => $Order[$PayOrderModel::ID]), $updateData); //更新pay_order表 $this->doAddRate($post['orderNumber'], $Order, 7); //增加代理商合伙人分润记录 R($Order[$PayOrderModel::NOTIFY_URL], array($Order));//执行回调函数 } } return "success"; } else { return "success"; } exit; } /** *生成签名字符串 * @param $arr : 数据 * @return string */ private function signGenerate($arr) { unset($arr['sign']);//去除sign ksort($arr, SORT_STRING); //按照键名排序 $stringSignTemp = ''; foreach ($arr as $k => $v) { //取非空参数 if ($v) { if (is_array($v)) { $v = json_encode($v); $stringSignTemp .= $k . '=' . $v . '&'; } else { $stringSignTemp .= $k . '=' . $v . '&'; } } } $stringSignTemp = $stringSignTemp . 'key=' . self::$appKey;//待加签字符串 $signValue = md5($stringSignTemp);//MD5加签 $sign = strtolower($signValue);//字符转换为小写 return $sign; } }