/** * * 获取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(WxPayApi::getNonceStr()); $jsapi->SetPackage("prepay_id=" . $UnifiedOrderResult['prepay_id']); $jsapi->SetSignType("MD5"); $jsapi->SetPaySign($jsapi->MakeSign()); $parameters = json_encode($jsapi->GetValues()); return $parameters; }
/** * * 获取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; }
/** * * 按类型获取支付凭证 * @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; }