public function dynamic_qrcode($payid, $fee, $out_trade_no, $tUrl, $eUrl, $proDesc) { //使用统一支付接口 $unifiedOrder = new \UnifiedOrder_pub(); if (!$payid || !$fee || !$out_trade_no || !$tUrl || !$eUrl || !$proDesc) { showTips('/index.php?s=/Pc/Centerall/my_order.html', "参数提交有误!"); } //自定义订单号,此处仅作举例 $fee = $fee * 100; $unifiedOrder->setParameter("body", "{$proDesc}"); //商品描述 $unifiedOrder->setParameter("out_trade_no", "{$out_trade_no}"); //商户订单号 $unifiedOrder->setParameter("total_fee", "{$fee}"); //总金额 $unifiedOrder->setParameter("notify_url", WxPayConf_pub::NOTIFY_URL); //通知地址 $unifiedOrder->setParameter("trade_type", "NATIVE"); //交易类型 $unifiedOrder->setParameter("attach", "{$payid}"); //附加数据 订单ID //获取统一支付接口结果 $unifiedOrderResult = $unifiedOrder->getResult(); //商户根据实际情况设置相应的处理流程 if ($unifiedOrderResult["return_code"] == "FAIL") { //商户自行增加处理流程 return "通信出错:" . $unifiedOrderResult['return_msg'] . "<br>"; } elseif ($unifiedOrderResult["result_code"] == "FAIL") { //商户自行增加处理流程 return "错误代码:" . $unifiedOrderResult['err_code'] . "<br>" . "错误代码描述:" . $unifiedOrderResult['err_code_des'] . "<br>"; } elseif ($unifiedOrderResult["code_url"] != NULL) { //从统一支付接口获取到code_url $code_url = $unifiedOrderResult["code_url"]; //商户自行增加处理流程 //...... return $code_url; } }
public function goToPay($payid, $openid, $fee, $out_trade_no, $tUrl, $eUrl, $proDesc) { if (!$payid || !$openid || !$fee || !$out_trade_no || !$tUrl || !$eUrl || !$proDesc) { showTips(U('Wap/Order/index'), "参数提交有误!"); } //使用jsapi接口 $fee = $fee * 100; $jsApi = new \JsApi_pub(); $unifiedOrder = new \UnifiedOrder_pub(); $unifiedOrder->setParameter("openid", "{$openid}"); $unifiedOrder->setParameter("body", "{$proDesc}"); //商品描述 $unifiedOrder->setParameter("out_trade_no", "{$out_trade_no}"); //商户订单号 $unifiedOrder->setParameter("total_fee", "{$fee}"); //总金额 $unifiedOrder->setParameter("notify_url", WxPayConf_pub::NOTIFY_URL); //通知地址 $unifiedOrder->setParameter("trade_type", "JSAPI"); //交易类型 $unifiedOrder->setParameter("attach", "{$payid}"); //附加数据 订单ID $prepay_id = $unifiedOrder->getPrepayId(); //=========步骤3:使用jsapi调起支付============ $jsApi->setPrepayId($prepay_id); $jsApiParameters = $jsApi->getParameters(); echo ' <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> <title>微信安全支付</title> <script type="text/javascript"> //调用微信JS api 支付 function jsApiCall() { WeixinJSBridge.invoke( "getBrandWCPayRequest", ' . $jsApiParameters . ', function(res){ if(res.err_msg == "get_brand_wcpay_request:ok"){ window.location.href = "' . $tUrl . '"; }else{ window.location.href = "' . $eUrl . '"; } } ); } function callpay() { if (typeof WeixinJSBridge == "undefined"){ if( document.addEventListener ){ document.addEventListener("WeixinJSBridgeReady", jsApiCall, false); }else if (document.attachEvent){ document.attachEvent("WeixinJSBridgeReady", jsApiCall); document.attachEvent("WeixinJSBridgeReady", jsApiCall); } }else{ jsApiCall(); } } callpay(); </script> </head> </html> '; }