public function unifiedOrder($data = array()) { $data['appid'] = $this->appid; $data['nonce_str'] = $this->createRand($this->nonceStrLength); $data['fee_type'] = "CNY"; $data['mch_id'] = $this->mch_id; //商户号 $data['trade_type'] = $this->trade_type; //商户号 $data['time_start'] = date("YmdHis", time()); //订单开始时间 $data['time_expire'] = date("YmdHis", time() + 300); //订单失效时间 $data['notify_url'] = $this->notifyUrl; $data['spbill_create_ip'] = $this->spbill_create_ip; $data['sign'] = $this->makeSign($data); $data = Utility::toXml($data); $result = $this->postXmlCurl($data, $this->orderUrl); $result = Utility::decodeXml($result); return $result; }
public function wxSpecialNotifyAction() { $xml = $GLOBALS['HTTP_RAW_POST_DATA']; $postData = Utility::decodeXml($xml); /*$postData = array( 'return_code' => 'SUCCESS', 'result_code' => 'SUCCESS', 'out_trade_no' => '1606231043392673', 'total_fee' => '399' );*/ if ($postData['return_code'] == 'SUCCESS' && $postData['result_code'] == 'SUCCESS') { $unitePayID = $postData['out_trade_no']; $price = $postData['total_fee']; $payDetail = $this->specialModel->select(array('unitePayID' => $unitePayID))->current(); if ($this->siteSettings['specialMoney'] * 100 == $price && $payDetail['isPaid'] == 0) { $this->sm->get("COM\\Service\\PayMod\\WxPay")->specialNotify($unitePayID); $requestUri = $_SERVER['REQUEST_URI']; $data = array('money' => $this->siteSettings['specialMoney'], 'payNotifyInfo' => $requestUri, 'postData' => json_encode($postData), 'unitePayID' => $unitePayID, 'payType' => 5, 'type' => 3); $this->payNotifyLogModel->insert($data); Utility::returnXml(array('return_code' => 'SUCCESS', 'return_msg' => '成功')); } else { Utility::returnXml(array('return_code' => 'FAIL', 'return_msg' => '金额错误')); } } else { Utility::returnXml(array('return_code' => 'FAIL', 'return_msg' => '失败')); } }