$v) { $buff .= $k . "=" . $v . "&"; } $buff = trim($buff, "&"); return $buff; } /** * 生成直接支付url,支付url有效期为2小时,模式二 * @param WxPayUnifiedOrder $input * @param array $wechatInfo * @return array * @throws WxPayException */ public function GetPayPrepayId($input, $wechatInfo) { if ($input->GetTrade_type() == "APP") { $result = WxPayApi::unifiedOrder($input, 6, $wechatInfo); return $result; } } /** * * 获取app支付的参数 * @param array $UnifiedOrderResult 统一支付接口返回的数据 * @param array $weixinInfo 微信公众号相关信息 * @throws WxPayException * * @return string json数据,可直接填入js函数作为参数 */ public function GetAppApiParameters($UnifiedOrderResult, $weixinInfo) { if(!array_key_exists("appid", $UnifiedOrderResult) || !array_key_exists("prepay_id", $UnifiedOrderResult) || $UnifiedOrderResult['prepay_id'] == "") { throw new WxPayException("参数错误"); } $appapi = new WxPayAppApiPay(); $appapi->SetAppid($UnifiedOrderResult["appid"]); $appapi->SetPartnerId($UnifiedOrderResult["mch_id"]); $appapi->SetPrepayId($UnifiedOrderResult["prepay_id"]); $timeStamp = time(); $appapi->SetTimeStamp($timeStamp); $appapi->SetNonceStr(WxPayApi::getNonceStr()); $appapi->SetPackage("Sign=WXPay"); $appapi->SetSign($appapi->MakeSign($weixinInfo)); $back_arr=$appapi->GetValues(); $back_arr['prepay_id']=$UnifiedOrderResult["prepay_id"]; $parameters = json_encode($appapi->GetValues()); return $parameters; } }