Exemple #1
0
 public function safeguard()
 {
     $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
     $postArray = kernel::single('site_utility_xml')->xml2array($postStr);
     $postData = $postArray['xml'];
     #$postData = array (
     #    'OpenId' => 'ow1l7t6coRbI3aBBNztBc6qT8F4w',
     #    'AppId' => 'wxfdd2db839d9e8984',
     #    'TimeStamp' => '1403080919',
     #    'MsgType' => 'request',
     #    'FeedBackId' => '13221259825330037179',
     #    'TransId' => '1219419901201406183166617972',
     #    'Reason' => '商品质量有问题',
     #    'Solution' => '退款,并不退货',
     #    'ExtInfo' => '我是备注 1391000000',
     #    'AppSignature' => '5f0dba6a6ba427cf523f22c815f6600cfbe1c365',
     #    'SignMethod' => 'sha1',
     #);
     $signData = array('OpenId' => $postData['OpenId'], 'TimeStamp' => $postData['TimeStamp']);
     if (!weixin_util::verifySignatureShal($signData, $postData['AppSignature'])) {
         return false;
     }
     $saveData['openid'] = $postData['OpenId'];
     $saveData['appid'] = $postData['AppId'];
     $saveData['msgtype'] = $postData['MsgType'];
     $saveData['feedbackid'] = $postData['FeedBackId'];
     $saveData['transid'] = $postData['TransId'];
     $saveData['reason'] = $postData['Reason'];
     $saveData['solution'] = $postData['Solution'];
     $saveData['extinfo'] = $postData['ExtInfo'];
     $saveData['picurl'] = $postData['PicUrl'];
     $saveData['timestamp'] = $postData['TimeStamp'];
     $safeguardModel = app::get('weixin')->model('safeguard');
     $row = $safeguardModel->getRow('id', array('feedbackid' => $saveData['feedbackid']));
     if ($row) {
         if ($saveData['msgtype'] == 'confirm') {
             $status = '3';
             $safeguardModel->update(array('msgtype' => $saveData['msgtype'], 'status' => $status), array('id' => $row['id']));
         } else {
             $saveData['status'] = '1';
             $safeguardModel->update($saveData, array('id' => $row['id']));
         }
     } else {
         $bindData = app::get('weixin')->model('bind')->getRow('id', array('appid' => $saveData['appid']));
         $res = kernel::single('weixin_wechat')->get_basic_userinfo($bindData['id'], $saveData['openid']);
         $saveData['weixin_nickname'] = $res['nickname'];
         if (!$safeguardModel->save($saveData)) {
             logger::info(var_export($saveData, 1), '维权信息记录失败');
         }
     }
 }