private function get_cft_package($partnerKey) { try { if (null == $partnerKey || "" == $partnerKey) { throw new Exception("密钥不能为空!" . "<br>"); } ksort($this->fields); $unSignParaString = weixin_util::formatQueryParaMap($this->fields, false); $paraString = weixin_util::formatQueryParaMap($this->fields, true); return $paraString . "&sign=" . weixin_util::sign($unSignParaString, weixin_util::trimString($partnerKey)); } catch (Exception $e) { die($e->getMessage()); } }
public function delivernotify($postData) { $payData = app::get('ectools')->getConf('weixin_payment_plugin_wxpay'); $payData = unserialize($payData); $postData['appid'] = trim($payData['setting']['appId']); $bindData = app::get('weixin')->model('bind')->getRow('id', array('appid' => $postData['appid'])); $access_token = $this->get_basic_accesstoken($bindData['id']); $url = "https://api.weixin.qq.com/pay/delivernotify?access_token={$access_token}"; $paySignKey = trim($payData['setting']['paySignKey']); // 财付通商户权限密钥 Key $sign = weixin_util::sign_sha1($postData, weixin_util::trimString($paySignKey)); $postData['app_signature'] = $sign; $postData['sign_method'] = 'sha1'; $httpclient = kernel::single('base_httpclient'); $postData = json_encode($postData); $response = $httpclient->set_timeout(6)->post($url, $postData); $result = json_decode($response, true); if ($result['errcode'] == 0) { return true; } else { $msg = "发货通知到微信,微信返回的错误码为 {$result['errcode']}\n,错误信息:{$result['errmsg']}"; logger::info($msg); return false; } }