tp5.1 微信jsapi支付
//引入的文件 文件位置extend/WxpayService/WxpayService
只展示接口部分 相关的配置一样都不要少,查看相关开发文档进行配置 直接上代码
//提交订单 public function order() { $token=input(post.token); $res=checkToken($token); if($res ==90001) { //验证token成功 $input=input(post.); $res1=$this->setOrder($input); if ($res1){ $appid=config(base.web_appid);//APPID $openid=Db::name(user)->where("token",$token)->value(openid); $mch_id=config(base.wev_mch_id);//商户号 $key=config(base.web_appsecret); $apiKey=config(base.web_apiKey); $out_trade_no=$res1[order_id]; $body=支付测试; $total_fee=$res1[amount]; $notify_url = http://域名/xxx/xxx/xxx/notify; $payTime=time(); $wxPay = new WxpayService($mch_id,$appid,$key,$apiKey); $jsApiParameters = $wxPay->createJsBizPackage($openid,$total_fee,$out_trade_no,$body,$notify_url,$payTime); $jsApiParameters = json_encode($jsApiParameters); $array = json_decode($jsApiParameters,true); $array[order_id]=$out_trade_no; $data[code]=1; $data[msg]=订单创建成功; $data[date]=$array; return json($data); }else{ $data[code]=0; $data[msg]=订单创建失败; $data[date]=null; return json($data); } }else if($res == 90002){ $data[code]=2; $data[msg]=token验证出错; $data[date]=null; return json($data); }else if($res == 90003){ $data[code]=3; $data[msg]=token超时,请重新登录; $data[date]=null; return json($data); } } //创建订单--走支付 public function setOrder($arr) { Db::startTrans(); try { $info[order_id]=order_number(); $info[uid]=token_to_uid($arr[token]); $info[package_id]=$arr[package_id]; $info[house_id]=package_to_house($arr[package_id]); $info[number]=$arr[number]; $info[price]=$arr[price]; $info[amount]=$arr[amount]; $info[integral]=$arr[integral];//购买套餐可获积分 $info[coupon_id]=$arr[coupon_id]; $info[point]=$arr[point];//直营店消费的积分数 $info[tel]=$arr[tel]; $info[create_time]=time(); $res=Db::name(order)->insert($info); $stock = Db::name(package)->where("id", $info[package_id])->value(stock); $res1 = Db::name(package)->where("id", $info[package_id])->update([stock => $stock - 1]); Db::commit(); return $info; }catch (Exception $e) { // 回滚事务 Db::rollback(); return 0; } } `//支付回调 public function notify(){ $data = file_get_contents(php://input); $arr = $this -> xmlToArray($data); //判断返回状态 if($arr[return_code] == SUCCESS || $arr[result_code] == SUCCESS){ $status= Db::name(order)->where(order_id,$arr[out_trade_no])->value(status); if ($status==1){ //修改订单状态 $res = Db::name(order)->where(order_id,$arr[out_trade_no])->update([status=>2,pay_time=>time(),transaction_id=>$arr[transaction_id]]); return <xml> <return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>; } } } //将xml格式转换成数组 function xmlToArray($xml) { //禁止引用外部xml实体 libxml_disable_entity_loader(true); $xmlstring = simplexml_load_string($xml, SimpleXMLElement, LIBXML_NOCDATA); $val = json_decode(json_encode($xmlstring), true); return $val; }
``
上一篇:
uniapp开发微信小程序-2.页面制作
下一篇:
微信小程序实现身份证识别-ocr