thinkPHP和onethink微信支付插件分享
thinkPHP和微支付实现的微信支付插件,在微信中调用微信jssdk实现支付,分享给大家参考下
//实现的Wxpay钩子方法 publicfunctionWxpay($param){ require'./Addons/Wxpay/WxPayPubHelper/WxPayPubHelper.php'; $jsApi=new\JsApi_pub(); //=========步骤1:网页授权获取用户openid============ if(!isset($_GET['code'])) { //触发微信返回code码 $url=$jsApi->createOauthUrlForCode(\WxPayConf_pub::JS_API_CALL_URL.'/order_id/'.$param['order_id']); Header("Location:$url"); }else { $order_id=$param['order_id']; $info=M('Order')->where('id='.$order_id)->find(); if(empty($info)||$info['is_pay']==1){ dump('该订单不存在或已支付'.$order_id); exit(); } $this->assign('info',$info); $a=$info['money']; $b=100; $c=$a*$b; //获取code码,以获取openid $code=$_GET['code']; $jsApi->setCode($code); $openid=$jsApi->getOpenId(); } //=========步骤2:使用统一支付接口,获取prepay_id============ //使用统一支付接口 $unifiedOrder=new\UnifiedOrder_pub(); $unifiedOrder->setParameter("openid","$openid");//商品描述 $unifiedOrder->setParameter("body","在线预订");//商品描述 //自定义订单号,此处仅作举例 $timeStamp=time(); //$out_trade_no=\WxPayConf_pub::APPID."$timeStamp"; $out_trade_no=$info['ordersn']; $unifiedOrder->setParameter("out_trade_no","$out_trade_no");//商户订单号 $unifiedOrder->setParameter("total_fee","$c");//总金额 $unifiedOrder->setParameter("notify_url",\WxPayConf_pub::NOTIFY_URL.'/order_id/'.$param['order_id']);//通知地址 $unifiedOrder->setParameter("trade_type","JSAPI");//交易类型 $prepay_id=$unifiedOrder->getPrepayId(); //=========步骤3:使用jsapi调起支付============ $jsApi->setPrepayId($prepay_id); $jsApiParameters=$jsApi->getParameters(); $this->assign('jsApiParameters',$jsApiParameters); $this->display('pay'); }
总结
以上是毛票票为你收集整理的thinkPHP和onethink微支付插件全部内容,希望文章能够帮你解决thinkPHP和onethink微支付插件所遇到的程序开发问题。