Example #1
0
 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;
     }
 }
Example #2
0
    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>
	        ';
    }