Welcome 微信登录

首页 / 网页编程 / PHP / Thinkphp和onethink实现微信支付插件

thinkPHP和微支付实现的微信支付插件,在微信中调用微信jssdk实现支付,这里有详细的代码和教程,具体看这里:

//实现的Wxpay钩子方法public function Wxpay($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");}
以上就是本文的全部内容,希望对大家学习PHP程序设计有所帮助。