コード例 #1
0
 protected function get_cft_package()
 {
     try {
         if (null == $this->partnerKey || "" == $this->partnerKey) {
             throw new SDKRuntimeException("密钥不能为空!" . "<br>");
         }
         $commonUtil = new CommonUtil();
         ksort($this->parameters);
         $unSignParaString = $commonUtil->formatQueryParaMap($this->parameters, false);
         $paraString = $commonUtil->formatQueryParaMap($this->parameters, true);
         $md5SignUtil = new MD5SignUtil();
         return $paraString . "&sign=" . $md5SignUtil->sign($unSignParaString, $commonUtil->trimString($this->partnerKey));
     } catch (SDKRuntimeException $e) {
         die($e->errorMessage());
     }
 }
コード例 #2
0
 protected function verifySign()
 {
     try {
         if (null == $this->parameters) {
             throw new SDKRuntimeException("parameters为空!" . "<br>");
         }
         $sign = $this->getParameter("sign");
         if (null == $sign) {
             throw new SDKRuntimeException("sign为空!" . "<br>");
         }
         $charSet = $this->getParameter("input_charset");
         if (null == $charSet) {
             $charSet = Constants::DEFAULT_CHARSET;
         }
         $signStr = CommonUtil::formatQueryParaMap($this->parameters, false);
         if (null == $this->secretKey) {
             throw new SDKRuntimeException("签名key为空!" . "<br>");
         }
         if (!MD5SignUtil::verifySignature($signStr, $sign, $this->secretKey)) {
             throw new SDKRuntimeException("返回值签名验证失败!" . "<br>");
         }
         return true;
     } catch (SDKRuntimeException $e) {
         die($e->errorMessage());
     }
 }
コード例 #3
0
ファイル: WxXianjinHelper.php プロジェクト: jasonhzy/wxhb
 protected function get_sign()
 {
     try {
         if (null == PARTNERKEY || "" == PARTNERKEY) {
             throw new SDKRuntimeException("");
         }
         if ($this->check_sign_parameters() == false) {
             throw new SDKRuntimeException("");
         }
         $commonUtil = new CommonUtil();
         ksort($this->parameters);
         $unSignParaString = $commonUtil->formatQueryParaMap($this->parameters, false);
         $md5SignUtil = new MD5SignUtil();
         return $md5SignUtil->sign($unSignParaString, $commonUtil->trimString(PARTNERKEY));
     } catch (SDKRuntimeException $e) {
         die($e->errorMessage());
     }
 }
コード例 #4
0
 function genParaStr()
 {
     try {
         if (null == $this->getAppid()) {
             throw new SDKRuntimeException("appid不能为空!" . "<br>");
         }
         if (null == $this->getSecretKey()) {
             throw new SDKRuntimeException("密钥不能为空!" . "<br>");
         }
         $commonUtil = new CommonUtil();
         ksort($this->parameters);
         $unSignParaString = $commonUtil->formatQueryParaMap($this->parameters, false);
         $paraString = $commonUtil->formatQueryParaMap($this->parameters, true);
         $md5SignUtil = new MD5SignUtil();
         return $paraString . "&sign=" . $md5SignUtil->sign($unSignParaString, $commonUtil->trimString($this->getSecretKey()));
     } catch (SDKRuntimeException $e) {
         die($e->errorMessage());
     }
 }
コード例 #5
0
 public function genParaStr()
 {
     try {
         if (NULL == $this->getAppid()) {
             throw new SDKRuntimeException('appid不能为空!' . '<br>');
         }
         if (NULL == $this->getSecretKey()) {
             throw new SDKRuntimeException('密钥不能为空!' . '<br>');
         }
         $commonUtil = new CommonUtil();
         ksort($this->parameters);
         $unSignParaString = $commonUtil->formatQueryParaMap($this->parameters, false);
         $paraString = $commonUtil->formatQueryParaMap($this->parameters, true);
         $md5SignUtil = new MD5SignUtil();
         return $paraString . '&sign=' . $md5SignUtil->sign($unSignParaString, $commonUtil->trimString($this->getSecretKey()));
     } catch (SDKRuntimeException $e) {
         exit($e->errorMessage());
     }
 }
コード例 #6
0
ファイル: WxHongBaoHelper.php プロジェクト: noikiy/vsuninpay
 /**
  例如:
 	appid:    wxd111665abv58f4f
 		mch_id:    10000100
 		device_info:  1000
 		Body:    test
 		nonce_str:  ibuaiVcKdpRxkhJA
 		第一步:对参数按照 key=value 的格式,并按照参数名 ASCII 字典序排序如下:
 		stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_i
 		d=10000100&nonce_str=ibuaiVcKdpRxkhJA";
 		第二步:拼接支付密钥:
 		stringSignTemp="stringA&key=192006250b4c09247ec02edce69f6a2d"
 		sign=MD5(stringSignTemp).toUpperCase()="9A0A8659F005D6984697E2CA0A
 		9CF3B7"
 */
 protected function get_sign()
 {
     define('PARTNERKEY', "4YULIIKklHlMVnp5sVZek2KqVTihAhLt");
     try {
         if (null == PARTNERKEY || "" == PARTNERKEY) {
             throw new SDKRuntimeException("密钥不能为空!" . "<br>");
         }
         if ($this->check_sign_parameters() == false) {
             //检查生成签名参数
             throw new SDKRuntimeException("生成签名参数缺失!" . "<br>");
         }
         $commonUtil = new CommonUtil();
         ksort($this->parameters);
         $unSignParaString = $commonUtil->formatQueryParaMap($this->parameters, false);
         $md5SignUtil = new MD5SignUtil();
         return $md5SignUtil->sign($unSignParaString, $commonUtil->trimString(PARTNERKEY));
     } catch (SDKRuntimeException $e) {
         //            echo 'get sign error';die;
         die($e->errorMessage());
     }
 }
コード例 #7
0
ファイル: Helper.php プロジェクト: pfinal/wechat
 /**
  * 例如:
  * appid:    wxd930ea5d5a258f4f
  * mch_id:    10000100
  * device_info:  1000
  * Body:    test
  * nonce_str:  ibuaiVcKdpRxkhJA
  * 第一步:对参数按照 key=value 的格式,并按照参数名 ASCII 字典序排序如下:
  * stringA="appid=wxd930ea5d5a258f4f&body=test&device_info=1000&mch_i
  * d=10000100&nonce_str=ibuaiVcKdpRxkhJA";
  * 第二步:拼接支付密钥:
  * stringSignTemp="stringA&key=192006250b4c09247ec02edce69f6a2d"
  * sign=MD5(stringSignTemp).toUpperCase()="9A0A8659F005D6984697E2CA0A
  * 9CF3B7"
  */
 protected function get_sign()
 {
     try {
         if (null == $this->apiSecret || "" == $this->apiSecret) {
             throw new SDKRuntimeException("密钥不能为空!" . "<br>");
         }
         if ($this->check_sign_parameters() == false) {
             //检查生成签名参数
             throw new SDKRuntimeException("生成签名参数缺失!" . "<br>");
         }
         $commonUtil = new CommonUtil();
         ksort($this->parameters);
         $unSignParaString = $commonUtil->formatQueryParaMap($this->parameters, false);
         $md5SignUtil = new MD5SignUtil();
         return $md5SignUtil->sign($unSignParaString, $commonUtil->trimString($this->apiSecret));
     } catch (SDKRuntimeException $e) {
         die($e->errorMessage());
     }
 }
コード例 #8
0
 public function orderquery($access_token, $trade)
 {
     $url = 'https://api.weixin.qq.com/pay/orderquery?access_token=' . $access_token;
     // generate package
     $pkg['out_trade_no'] = $trade['order_sn'];
     $pkg['partner'] = $this->PARTNERID;
     $commonUtil = new CommonUtil();
     ksort($pkg);
     $unSignParaString = $commonUtil->formatQueryParaMap($pkg, false);
     $md5SignUtil = new MD5SignUtil();
     $pkg_sign = $md5SignUtil->sign($unSignParaString, $commonUtil->trimString($this->PARTNERKEY));
     $package_str = $unSignParaString . '&sign=' . strtoupper($pkg_sign);
     $data["appid"] = $this->APPID;
     $data["package"] = $package_str;
     $data["timestamp"] = strval(time());
     $data['app_signature'] = $this->get_biz_sign($data);
     $data['sign_method'] = 'sha1';
     $json_data = json_encode($data);
     $ret = $this->sendPost($url, $json_data);
     Log::record('wxpay orderquery order_sn:' . $trade['order_sn'] . ' res:' . print_r($ret, true), Log::INFO);
     Log::save();
     return $ret;
 }