Example #1
0
 /**
  * 
  * 获取jsapi支付的参数
  * @param array $UnifiedOrderResult 统一支付接口返回的数据
  * @throws WxPayException
  * 
  * @return json数据,可直接填入js函数作为参数
  */
 public function GetJsApiParameters($UnifiedOrderResult)
 {
     if (!array_key_exists("appid", $UnifiedOrderResult) || !array_key_exists("prepay_id", $UnifiedOrderResult) || $UnifiedOrderResult['prepay_id'] == "") {
         throw new WxPayException("参数错误");
     }
     $jsapi = new WxPayJsApiPay();
     $jsapi->setConfig($this->config);
     $jsapi->SetAppid($UnifiedOrderResult["appid"]);
     $timeStamp = time();
     $jsapi->SetTimeStamp($timeStamp);
     $jsapi->SetNonceStr(WxPayApi::getNonceStr());
     $jsapi->SetPackage("prepay_id=" . $UnifiedOrderResult['prepay_id']);
     $jsapi->SetSignType("MD5");
     $jsapi->SetPaySign($jsapi->MakeSign());
     $parameters = json_encode($jsapi->GetValues());
     return $parameters;
 }
Example #2
0
 /**
  *
  * 获取jsapi支付的参数
  * @param array $UnifiedOrderResult 统一支付接口返回的数据
  * @throws WxPayException
  *
  * @return json数据,可直接填入js函数作为参数
  */
 public function GetJsApiParameters($UnifiedOrderResult)
 {
     if (!array_key_exists('appid', $UnifiedOrderResult) || !array_key_exists('prepay_id', $UnifiedOrderResult) || $UnifiedOrderResult['prepay_id'] == '') {
         throw new WxPayException('参数错误');
     }
     $jsapi = new WxPayJsApiPay();
     $jsapi->setAppid($UnifiedOrderResult['appid']);
     $timeStamp = time();
     $jsapi->setTimeStamp($timeStamp);
     $jsapi->setNonceStr($this->api->getNonceStr());
     $jsapi->setPackage('prepay_id=' . $UnifiedOrderResult['prepay_id']);
     $jsapi->setSignType('MD5');
     $jsapi->setPaySign($jsapi->makeSign());
     $parameters = json_encode($jsapi->getValues());
     return $parameters;
 }
Example #3
0
 /**
  * 
  * 获取jsapi支付的参数
  * @param array $UnifiedOrderResult 统一支付接口返回的数据
  * @throws WxPayException
  * 
  * @return json数据,可直接填入js函数作为参数
  */
 public function GetJsApiParameters($UnifiedOrderResult)
 {
     if (!array_key_exists("appid", $UnifiedOrderResult) || !array_key_exists("prepay_id", $UnifiedOrderResult) || $UnifiedOrderResult['prepay_id'] == "") {
         // throw new WxPayException("参数错误");
         Yii::log('WxJsPayHelper 71line', CLogger::LEVEL_ERROR, 'WxJsPayHelper');
         Yii::app()->request->redirect(Assist::getDefaultURL());
     }
     $jsapi = new WxPayJsApiPay();
     $jsapi->SetAppid($UnifiedOrderResult["appid"]);
     $timeStamp = time();
     $jsapi->SetTimeStamp($timeStamp);
     $jsapi->SetNonceStr(WxPayApi::getNonceStr());
     $jsapi->SetPackage("prepay_id=" . $UnifiedOrderResult['prepay_id']);
     $jsapi->SetSignType("MD5");
     $jsapi->SetPaySign($jsapi->MakeSign());
     $parameters = json_encode($jsapi->GetValues());
     return $parameters;
 }
Example #4
0
 /**
  *
  * 按类型获取支付凭证
  * @param data
  */
 public static function getPayConfig($data)
 {
     $input = self::getUnifiedOrder($data);
     $config = WxPayApi::unifiedOrder($input);
     if ($config['return_code'] == 'FAIL') {
         throw new WxPayException($config['return_msg'], 1);
     }
     if ($data['trade_type'] = 'JSAPI') {
         $jsapi = new WxPayJsApiPay();
         $jsapi->SetAppid($config["appid"]);
         $jsapi->SetTimeStamp(strtotime($data['time_start']));
         $jsapi->SetNonceStr(WxPayApi::getNonceStr());
         $jsapi->SetPackage("prepay_id=" . $config['prepay_id']);
         $jsapi->SetSignType("MD5");
         $jsapi->SetPaySign($jsapi->MakeSign());
         $parameters = json_encode($jsapi->GetValues());
         return $parameters;
     } else {
         if ($data['trade_type'] = 'APP') {
             // TODO HBuilder
             // // 参与签名的字段名为appId,partnerId,prepayId,nonceStr,timeStamp,package。注意:package的值格式为Sign=WXPay
             // $time_stamp = time();
             // $pack   = 'Sign=WXPay';
             // //输出参数列表
             // $prePayParams =array();
             // $prePayParams['appid']      =$config['appid'];
             // $prePayParams['partnerid']  =$config['mch_id'];
             // $prePayParams['prepayid']   =$config['prepay_id'];
             // $prePayParams['noncestr']   =$config['nonce_str'];
             // $prePayParams['package']    =$pack;
             // $prePayParams['timestamp']  =$time_stamp;
             // $prePayParams['sign']       =$config['sign'];
             // return $prePayParams;
         }
     }
     return $config;
 }