//重新支付参数 if (stristr($pageData['updateapi'], "?")) { $pageData['updateapi'] = $pageData['updateapi'] . '&'; } else { $pageData['updateapi'] = $pageData['updateapi'] . '?'; } $pageData['updateapi'] = $pageData['updateapi'] . 'repay=1'; } //添加随机数 $pageData['orderid'] = $pageData['orderid'] . 'rp' . rand(1, 1000); //微信支付商户订单号 } } //从商户订单号中获取网站ID $pageData['oid'] = $_SESSION['oid']; $sid = IdeaUtil::getSidFromOut_trade_no($_SESSION['oid']); // 读取签名密钥 网址名 $privateKey = WxPayConf_pub::privateKey; $sitename = WxPayConf_pub::sitename; /** * JS_API支付demo * ==================================================== * 在微信浏览器里面打开H5网页中执行JS调起支付。接口输入输出数据格式为JSON。 * 成功调起支付需要三个步骤: * 步骤1:网页授权获取用户openid * 步骤2:使用统一支付接口,获取prepay_id * 步骤3:使用jsapi调起支付 */ //使用jsapi接口 $jsApi = new JsApi_pub(); //=========步骤1:网页授权获取用户openid============
} else { $pageData['backurl'] = $pageData['backurl'] . '?'; } $pageData['prouct_pic'] = $datas['prouct_pic']; $pageData['prouct_title'] = $datas['prouct_title']; $pageData['prouct_introduction'] = $datas['prouct_introduction']; $pageData['prouct_price'] = $datas['prouct_price']; $pageData['prouct_pay'] = $datas['prouct_pay']; $pageData['siteid'] = $datas['siteid']; $pageData['updateapi'] = $datas['updateapi']; $pageData['oid'] = $datas['orderid']; //原始订单号 } } //从商户订单号中获取网站ID,从而获取该网站的动态密钥 $sid = IdeaUtil::getSidFromOut_trade_no($pageData['oid']); // 读取签名密钥 网址名 $privateKey = WxPayConf_pub::privateKey; $sitename = WxPayConf_pub::sitename; //支付处理 $action = isset($_REQUEST['aciton']) ? $_REQUEST['aciton'] : ''; $orderid = isset($_REQUEST['orderid']) ? $_REQUEST['orderid'] : 'test'; $openid = isset($_REQUEST['openid']) ? $_REQUEST['openid'] : ''; $backUrl = "{$pageData['backurl']}oid={$pageData['oid']}&wxorderid={$orderid}&openid={$openid}&paystatus="; $paystatus = 'get_brand_wcpay_request:fail'; if ($action == 'wxpayzero') { $timestamp = isset($_REQUEST['timestamp']) ? $_REQUEST['timestamp'] : ''; $sign = isset($_REQUEST['sign']) ? $_REQUEST['sign'] : 'ok'; $oid = isset($_REQUEST['oid']) ? $_REQUEST['oid'] : ''; $apiurl = isset($_REQUEST['apiurl']) ? $_REQUEST['apiurl'] : ''; //检测参数是否合法
$up_url = isset($notifydata['attach']) ? urldecode($notifydata['attach']) : ''; //数据更新地址 $up_openid = isset($notifydata['openid']) ? $notifydata['openid'] : ''; //支付者openid $up_out_trade_no = isset($notifydata['out_trade_no']) ? $notifydata['out_trade_no'] : ''; //商户订单号 $up_total_fee = isset($notifydata['total_fee']) ? $notifydata['total_fee'] : ''; //微信支付金额 $up_transaction_id = isset($notifydata['transaction_id']) ? $notifydata['transaction_id'] : ''; //微信支付订单号 $up_return_code = isset($notifydata['return_code']) ? $notifydata['return_code'] : ''; //微信支付返回状态 $up_result_code = isset($notifydata['result_code']) ? $notifydata['result_code'] : ''; //微信支付业务状态 //从商户订单号中获取网站ID,从而获取该网站的动态密钥 $sid = IdeaUtil::getSidFromOut_trade_no($up_out_trade_no); $privateKey = WxPayConf_pub::privateKey; $sitename = WxPayConf_pub::sitename; if ($paystatus == 'get_brand_wcpay_request:ok' && !empty($up_url)) { //支付成功 //加入订单号包涵 "rp"分割字符串得到原始商户订单号用于api订单更新 if (strpos($up_out_trade_no, 'rp')) { $arr_out_trade_no = explode('rp', $up_out_trade_no); $up_out_trade_no = $arr_out_trade_no[0]; } //生成签名 $privateKey = isset($privateKey) ? $privateKey : '515xinyuemin'; //获取不到密钥,就用默认密钥 $timestamp = time(); $nonce = md5(base64_encode($up_openid . $up_out_trade_no . $up_total_fee . 'xym')); $signature = IdeaUtil::generateSignature($timestamp, $nonce, $privateKey);