作者 景龙
1 个管道 的构建 失败 耗费 2 秒

增加从余额支付

@@ -6,7 +6,7 @@ use app\common\controller\Api; @@ -6,7 +6,7 @@ use app\common\controller\Api;
6 use think\Db; 6 use think\Db;
7 use think\Validate; 7 use think\Validate;
8 /** 8 /**
9 - * 系统消息接口 9 + * 系统消息接口**
10 */ 10 */
11 class Smessages extends Api 11 class Smessages extends Api
12 { 12 {
@@ -40,6 +40,7 @@ class Wxpay extends Api @@ -40,6 +40,7 @@ class Wxpay extends Api
40 * @ApiHeaders (name=token, type=string, required=true, description="请求的Token") 40 * @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
41 * @ApiParams (name="openid", type="string", required=true, description="小程序openid") 41 * @ApiParams (name="openid", type="string", required=true, description="小程序openid")
42 * @ApiParams (name="pay_order_sn", type="string", required=true, description="支付订单号") 42 * @ApiParams (name="pay_order_sn", type="string", required=true, description="支付订单号")
  43 + * @ApiParams (name="type", type="integer", required=true, description="支付方式(0:微信支付,1:余额支付)")
43 * @ApiReturn ({code: 0, msg: "无效的订单", time: "1554176100", data: null}) 44 * @ApiReturn ({code: 0, msg: "无效的订单", time: "1554176100", data: null})
44 */ 45 */
45 public function pay(){ 46 public function pay(){
@@ -48,8 +49,11 @@ class Wxpay extends Api @@ -48,8 +49,11 @@ class Wxpay extends Api
48 $pay = Pay::wechat(Service::getConfig('wechat')); 49 $pay = Pay::wechat(Service::getConfig('wechat'));
49 $openid = $this->request->post('openid');//小程序传递openid 50 $openid = $this->request->post('openid');//小程序传递openid
50 $pay_order_sn = $this->request->post('pay_order_sn');//支付订单号 51 $pay_order_sn = $this->request->post('pay_order_sn');//支付订单号
51 - if(empty($openid) && empty($pay_order_sn)){  
52 - $this->error('无效的参数'); 52 + $type = $this->request->post('type');//支付方式(wx:微信支付,balance:余额支付)
  53 + $rule = config('site.pay');
  54 + $validate = new Validate($rule['rule'],$rule['msg']);
  55 + if (!$validate->check(['openid'=>$openid,'pay_order_sn'=>$pay_order_sn,'type'=>$type])) {
  56 + $this->error($validate->getError());
53 } 57 }
54 //查询订单是否已支付 58 //查询订单是否已支付
55 $is_pay = Db::table('gc_porder') 59 $is_pay = Db::table('gc_porder')
@@ -71,17 +75,44 @@ class Wxpay extends Api @@ -71,17 +75,44 @@ class Wxpay extends Api
71 foreach ($exist as $value) { 75 foreach ($exist as $value) {
72 $total_price += $value['total_price']; 76 $total_price += $value['total_price'];
73 } 77 }
74 - //构建订单信息  
75 - $order = [  
76 - 'out_trade_no' => $pay_order_sn,//支付订单号  
77 - 'body' => '广西小纸皮再生资源回收有限公司',  
78 - 'total_fee' => 1, 78 + if($type == 'wx'){
  79 + //构建订单信息
  80 + $order = [
  81 + 'out_trade_no' => $pay_order_sn,//支付订单号
  82 + 'body' => '广西小纸皮再生资源回收有限公司',
  83 + 'total_fee' => 1,
79 // 'total_fee' => floatval($total_price)*100,//单位:分 84 // 'total_fee' => floatval($total_price)*100,//单位:分
80 - 'openid' => $openid,  
81 - 'notify_url' => url('api/Wxpay/notify','','',true),  
82 - ];  
83 - //跳转或输出  
84 - $this->success('成功',$pay->miniapp($order)); 85 + 'openid' => $openid,
  86 + 'notify_url' => url('api/Wxpay/notify','','',true),
  87 + ];
  88 + //跳转或输出
  89 + $this->success('成功',$pay->miniapp($order));
  90 + }else if($type == 'balance'){
  91 + //从余额扣取
  92 + $userModel = new User();
  93 + $user = $userModel->where(['openid'=>$openid])->find();
  94 + if(!$user){
  95 + $this->error('未找到该用户');
  96 + }
  97 + if($user['money'] < $total_price){
  98 + $this->error('余额不足');
  99 + }
  100 + //从账户扣取费用
  101 + $sur_money = $user['money'] - $total_price;
  102 + $res = $userModel->where(['openid'=>$openid])->update(['money'=>$sur_money]);
  103 + //更新订单状态
  104 + $porderModel = new Porder();
  105 + $res1 = $porderModel->where(['pay_order_sn'=>$pay_order_sn])->update(['status'=>$this->order_status[1]]);
  106 + //减库存,删相应购物车记录
  107 + $this->handle($pay_order_sn,$openid);
  108 + if($res && $res1){
  109 + $this->success('成功');
  110 + }else{
  111 + $this->error('失败');
  112 + }
  113 + }else{
  114 + $this->error('支付方式有误');
  115 + }
85 116
86 }else{ 117 }else{
87 $this->error('请求方式错误'); 118 $this->error('请求方式错误');
@@ -133,6 +164,7 @@ class Wxpay extends Api @@ -133,6 +164,7 @@ class Wxpay extends Api
133 try { 164 try {
134 $data = $pay->verify(); 165 $data = $pay->verify();
135 if($data['result_code'] == 'SUCCESS' && $data['return_code'] == 'SUCCESS'){ 166 if($data['result_code'] == 'SUCCESS' && $data['return_code'] == 'SUCCESS'){
  167 + //更新订单状态
136 $porderModel = new Porder(); 168 $porderModel = new Porder();
137 $porderModel->where(['pay_order_sn'=>$data['out_trade_no']])->update(['status'=>$this->order_status[1]]); 169 $porderModel->where(['pay_order_sn'=>$data['out_trade_no']])->update(['status'=>$this->order_status[1]]);
138 //减库存,删相应购物车记录 170 //减库存,删相应购物车记录
@@ -249,7 +281,7 @@ class Wxpay extends Api @@ -249,7 +281,7 @@ class Wxpay extends Api
249 * @param $pay_order_sn 281 * @param $pay_order_sn
250 * @param $openid 282 * @param $openid
251 */ 283 */
252 - public function handle($pay_order_sn,$openid){ 284 + private function handle($pay_order_sn,$openid){
253 //查询订单信息的商品id,数量num 285 //查询订单信息的商品id,数量num
254 $data = Db::table('gc_porder') 286 $data = Db::table('gc_porder')
255 ->where(['pay_order_sn'=>$pay_order_sn]) 287 ->where(['pay_order_sn'=>$pay_order_sn])
@@ -294,4 +294,16 @@ return array ( @@ -294,4 +294,16 @@ return array (
294 'open_bank' => '开户行最多不超过10个字符', 294 'open_bank' => '开户行最多不超过10个字符',
295 ] 295 ]
296 ], 296 ],
  297 + 'pay' => [
  298 + 'rule' => [
  299 + 'openid' => 'require',
  300 + 'pay_order_sn' => 'require',
  301 + 'type' => 'require',
  302 + ],
  303 + 'msg' => [
  304 + 'openid.require' => 'openid不能为空',
  305 + 'pay_order_sn.require' => '支付单号不能为空',
  306 + 'type' => '请选择支付类型',
  307 + ]
  308 + ],
297 ); 309 );
@@ -27,7 +27,6 @@ @@ -27,7 +27,6 @@
27 </head> 27 </head>
28 28
29 <body id="page-top"> 29 <body id="page-top">
30 -  
31 <nav id="mainNav" class="navbar navbar-default navbar-fixed-top"> 30 <nav id="mainNav" class="navbar navbar-default navbar-fixed-top">
32 <div class="container"> 31 <div class="container">
33 <div class="navbar-header"> 32 <div class="navbar-header">
@@ -38,17 +37,17 @@ @@ -38,17 +37,17 @@
38 </div> 37 </div>
39 38
40 <div class="collapse navbar-collapse" id="navbar-collapse-menu"> 39 <div class="collapse navbar-collapse" id="navbar-collapse-menu">
41 - <ul class="nav navbar-nav navbar-right">  
42 - <li><a href="https://www.fastadmin.net" target="_blank">{:__('Home')}</a></li>  
43 - <li><a href="https://www.fastadmin.net/store.html" target="_blank">{:__('Store')}</a></li>  
44 - <li><a href="https://www.fastadmin.net/wxapp.html" target="_blank">{:__('Wxapp')}</a></li>  
45 - <li><a href="https://www.fastadmin.net/service.html" target="_blank">{:__('Services')}</a></li>  
46 - <li><a href="https://www.fastadmin.net/download.html" target="_blank">{:__('Download')}</a></li>  
47 - <li><a href="https://www.fastadmin.net/demo.html" target="_blank">{:__('Demo')}</a></li>  
48 - <li><a href="https://www.fastadmin.net/donate.html" target="_blank">{:__('Donation')}</a></li>  
49 - <li><a href="https://forum.fastadmin.net" target="_blank">{:__('Forum')}</a></li>  
50 - <li><a href="https://doc.fastadmin.net" target="_blank">{:__('Docs')}</a></li>  
51 - </ul> 40 + <!--<ul class="nav navbar-nav navbar-right">-->
  41 + <!--<li><a href="https://www.fastadmin.net" target="_blank">{:__('Home')}</a></li>-->
  42 + <!--<li><a href="https://www.fastadmin.net/store.html" target="_blank">{:__('Store')}</a></li>-->
  43 + <!--<li><a href="https://www.fastadmin.net/wxapp.html" target="_blank">{:__('Wxapp')}</a></li>-->
  44 + <!--<li><a href="https://www.fastadmin.net/service.html" target="_blank">{:__('Services')}</a></li>-->
  45 + <!--<li><a href="https://www.fastadmin.net/download.html" target="_blank">{:__('Download')}</a></li>-->
  46 + <!--<li><a href="https://www.fastadmin.net/demo.html" target="_blank">{:__('Demo')}</a></li>-->
  47 + <!--<li><a href="https://www.fastadmin.net/donate.html" target="_blank">{:__('Donation')}</a></li>-->
  48 + <!--<li><a href="https://forum.fastadmin.net" target="_blank">{:__('Forum')}</a></li>-->
  49 + <!--<li><a href="https://doc.fastadmin.net" target="_blank">{:__('Docs')}</a></li>-->
  50 + <!--</ul>-->
52 </div> 51 </div>
53 <!-- /.navbar-collapse --> 52 <!-- /.navbar-collapse -->
54 </div> 53 </div>
@@ -63,8 +62,8 @@ @@ -63,8 +62,8 @@
63 <div class="header-content-inner"> 62 <div class="header-content-inner">
64 <h1>FastAdmin</h1> 63 <h1>FastAdmin</h1>
65 <h3>{:__('The fastest framework based on ThinkPHP5 and Bootstrap')}</h3> 64 <h3>{:__('The fastest framework based on ThinkPHP5 and Bootstrap')}</h3>
66 - <a href="{:url('admin/index/login')}" class="btn btn-warning btn-xl page-scroll">{:__('Go to Dashboard')}</a>  
67 - <a href="{:url('index/user/index')}" class="btn btn-outline btn-xl page-scroll">{:__('Go to Member center')}</a> 65 + <!--<a href="{:url('admin/index/login')}" class="btn btn-warning btn-xl page-scroll">{:__('Go to Dashboard')}</a>-->
  66 + <!--<a href="{:url('index/user/index')}" class="btn btn-outline btn-xl page-scroll">{:__('Go to Member center')}</a>-->
68 </div> 67 </div>
69 </div> 68 </div>
70 </div> 69 </div>
@@ -72,95 +71,95 @@ @@ -72,95 +71,95 @@
72 </div> 71 </div>
73 </header> 72 </header>
74 73
75 - <section id="features" class="features">  
76 - <div class="container">  
77 - <div class="row">  
78 - <div class="col-lg-12 text-center">  
79 - <div class="section-heading">  
80 - <h2>{:__('Features')}</h2>  
81 - </div>  
82 - </div>  
83 - </div>  
84 - <div class="row">  
85 - <div class="col-md-12">  
86 - <div class="container-fluid">  
87 - <div class="row">  
88 - <div class="col-md-4">  
89 - <div class="feature-item">  
90 - <i class="icon-user text-primary"></i>  
91 - <h3>{:__('Auth')}</h3>  
92 - <p class="text-muted">{:__('Auth tips')}</p>  
93 - </div>  
94 - </div>  
95 - <div class="col-md-4">  
96 - <div class="feature-item">  
97 - <i class="icon-screen-smartphone text-primary"></i>  
98 - <h3>{:__('Responsive')}</h3>  
99 - <p class="text-muted">{:__('Responsive tips')}</p>  
100 - </div>  
101 - </div>  
102 - <div class="col-md-4">  
103 - <div class="feature-item">  
104 - <i class="icon-present text-primary"></i>  
105 - <h3>{:__('Languages')}</h3>  
106 - <p class="text-muted">{:__('Languages tips')}</p>  
107 - </div>  
108 - </div>  
109 - <div class="col-md-4">  
110 - <div class="feature-item">  
111 - <i class="icon-layers text-primary"></i>  
112 - <h3>{:__('Module')}</h3>  
113 - <p class="text-muted">{:__('Module tips')}</p>  
114 - </div>  
115 - </div>  
116 - <div class="col-md-4">  
117 - <div class="feature-item">  
118 - <i class="icon-docs text-primary"></i>  
119 - <h3>{:__('CRUD')}</h3>  
120 - <p class="text-muted">{:__('CRUD tips')}</p>  
121 - </div>  
122 - </div>  
123 - <div class="col-md-4">  
124 - <div class="feature-item">  
125 - <i class="icon-puzzle text-primary"></i>  
126 - <h3>{:__('Extension')}</h3>  
127 - <p class="text-muted">{:__('Extension tips')}</p>  
128 - </div>  
129 - </div>  
130 - </div>  
131 - </div>  
132 - </div>  
133 - </div>  
134 - </div>  
135 - </section>  
136 -  
137 - <section class="cta">  
138 - <div class="cta-content">  
139 - <div class="container">  
140 - <h2>{:__('Do not hesitate')}<br>{:__('Start to act')}</h2>  
141 - <a href="https://doc.fastadmin.net/docs/contributing.html" class="btn btn-outline btn-xl page-scroll">{:__('Contribution')}</a>  
142 - </div>  
143 - </div>  
144 - <div class="overlay"></div>  
145 - </section>  
146 -  
147 - <footer>  
148 - <div class="container">  
149 - <!-- FastAdmin是开源程序,建议在您的网站底部保留一个FastAdmin的链接 -->  
150 - <p>&copy; 2017-2018 <a href="https://www.fastadmin.net" target="_blank">FastAdmin</a>. All Rights Reserved.</p>  
151 - <ul class="list-inline">  
152 - <li>  
153 - <a href="https://gitee.com/karson/fastadmin">{:__('Gitee')}</a>  
154 - </li>  
155 - <li>  
156 - <a href="https://github.com/karsonzhang/fastadmin">{:__('Github')}</a>  
157 - </li>  
158 - <li>  
159 - <a href="https://shang.qq.com/wpa/qunwpa?idkey=46c326e570d0f97cfae1f8257ae82322192ec8841c79b2136446df0b3b62028c">{:__('QQ group')}</a>  
160 - </li>  
161 - </ul>  
162 - </div>  
163 - </footer> 74 + <!--<section id="features" class="features">-->
  75 + <!--<div class="container">-->
  76 + <!--<div class="row">-->
  77 + <!--<div class="col-lg-12 text-center">-->
  78 + <!--<div class="section-heading">-->
  79 + <!--<h2>{:__('Features')}</h2>-->
  80 + <!--</div>-->
  81 + <!--</div>-->
  82 + <!--</div>-->
  83 + <!--<div class="row">-->
  84 + <!--<div class="col-md-12">-->
  85 + <!--<div class="container-fluid">-->
  86 + <!--<div class="row">-->
  87 + <!--<div class="col-md-4">-->
  88 + <!--<div class="feature-item">-->
  89 + <!--<i class="icon-user text-primary"></i>-->
  90 + <!--<h3>{:__('Auth')}</h3>-->
  91 + <!--<p class="text-muted">{:__('Auth tips')}</p>-->
  92 + <!--</div>-->
  93 + <!--</div>-->
  94 + <!--<div class="col-md-4">-->
  95 + <!--<div class="feature-item">-->
  96 + <!--<i class="icon-screen-smartphone text-primary"></i>-->
  97 + <!--<h3>{:__('Responsive')}</h3>-->
  98 + <!--<p class="text-muted">{:__('Responsive tips')}</p>-->
  99 + <!--</div>-->
  100 + <!--</div>-->
  101 + <!--<div class="col-md-4">-->
  102 + <!--<div class="feature-item">-->
  103 + <!--<i class="icon-present text-primary"></i>-->
  104 + <!--<h3>{:__('Languages')}</h3>-->
  105 + <!--<p class="text-muted">{:__('Languages tips')}</p>-->
  106 + <!--</div>-->
  107 + <!--</div>-->
  108 + <!--<div class="col-md-4">-->
  109 + <!--<div class="feature-item">-->
  110 + <!--<i class="icon-layers text-primary"></i>-->
  111 + <!--<h3>{:__('Module')}</h3>-->
  112 + <!--<p class="text-muted">{:__('Module tips')}</p>-->
  113 + <!--</div>-->
  114 + <!--</div>-->
  115 + <!--<div class="col-md-4">-->
  116 + <!--<div class="feature-item">-->
  117 + <!--<i class="icon-docs text-primary"></i>-->
  118 + <!--<h3>{:__('CRUD')}</h3>-->
  119 + <!--<p class="text-muted">{:__('CRUD tips')}</p>-->
  120 + <!--</div>-->
  121 + <!--</div>-->
  122 + <!--<div class="col-md-4">-->
  123 + <!--<div class="feature-item">-->
  124 + <!--<i class="icon-puzzle text-primary"></i>-->
  125 + <!--<h3>{:__('Extension')}</h3>-->
  126 + <!--<p class="text-muted">{:__('Extension tips')}</p>-->
  127 + <!--</div>-->
  128 + <!--</div>-->
  129 + <!--</div>-->
  130 + <!--</div>-->
  131 + <!--</div>-->
  132 + <!--</div>-->
  133 + <!--</div>-->
  134 + <!--</section>-->
  135 +
  136 + <!--<section class="cta">-->
  137 + <!--<div class="cta-content">-->
  138 + <!--<div class="container">-->
  139 + <!--<h2>{:__('Do not hesitate')}<br>{:__('Start to act')}</h2>-->
  140 + <!--<a href="https://doc.fastadmin.net/docs/contributing.html" class="btn btn-outline btn-xl page-scroll">{:__('Contribution')}</a>-->
  141 + <!--</div>-->
  142 + <!--</div>-->
  143 + <!--<div class="overlay"></div>-->
  144 + <!--</section>-->
  145 +
  146 + <!--<footer>-->
  147 + <!--<div class="container">-->
  148 + <!--&lt;!&ndash; FastAdmin是开源程序,建议在您的网站底部保留一个FastAdmin的链接 &ndash;&gt;-->
  149 + <!--<p>&copy; 2017-2018 <a href="https://www.fastadmin.net" target="_blank">FastAdmin</a>. All Rights Reserved.</p>-->
  150 + <!--<ul class="list-inline">-->
  151 + <!--<li>-->
  152 + <!--<a href="https://gitee.com/karson/fastadmin">{:__('Gitee')}</a>-->
  153 + <!--</li>-->
  154 + <!--<li>-->
  155 + <!--<a href="https://github.com/karsonzhang/fastadmin">{:__('Github')}</a>-->
  156 + <!--</li>-->
  157 + <!--<li>-->
  158 + <!--<a href="https://shang.qq.com/wpa/qunwpa?idkey=46c326e570d0f97cfae1f8257ae82322192ec8841c79b2136446df0b3b62028c">{:__('QQ group')}</a>-->
  159 + <!--</li>-->
  160 + <!--</ul>-->
  161 + <!--</div>-->
  162 + <!--</footer>-->
164 163
165 <!-- jQuery --> 164 <!-- jQuery -->
166 <script src=https://cdn.staticfile.org/jquery/2.1.4/jquery.min.js></script> 165 <script src=https://cdn.staticfile.org/jquery/2.1.4/jquery.min.js></script>
@@ -245,8 +245,8 @@ @@ -245,8 +245,8 @@
245 <div class="child collapse" id="卖废品接口**"> 245 <div class="child collapse" id="卖废品接口**">
246 <a href="javascript:;" data-id="57" class="list-group-item">卖废品信息添加</a> 246 <a href="javascript:;" data-id="57" class="list-group-item">卖废品信息添加</a>
247 </div> 247 </div>
248 - <a href="#系统消息接口" class="list-group-item" data-toggle="collapse" data-parent="#sidebar">系统消息接口 <i class="fa fa-caret-down"></i></a>  
249 - <div class="child collapse" id="系统消息接口"> 248 + <a href="#系统消息接口**" class="list-group-item" data-toggle="collapse" data-parent="#sidebar">系统消息接口** <i class="fa fa-caret-down"></i></a>
  249 + <div class="child collapse" id="系统消息接口**">
250 <a href="javascript:;" data-id="58" class="list-group-item">系统消息列表</a> 250 <a href="javascript:;" data-id="58" class="list-group-item">系统消息列表</a>
251 <a href="javascript:;" data-id="59" class="list-group-item">系统消息详情</a> 251 <a href="javascript:;" data-id="59" class="list-group-item">系统消息详情</a>
252 </div> 252 </div>
@@ -296,7 +296,6 @@ @@ -296,7 +296,6 @@
296 <a href="javascript:;" data-id="86" class="list-group-item">充值</a> 296 <a href="javascript:;" data-id="86" class="list-group-item">充值</a>
297 <a href="javascript:;" data-id="87" class="list-group-item">微信异步通知(不需调用)</a> 297 <a href="javascript:;" data-id="87" class="list-group-item">微信异步通知(不需调用)</a>
298 <a href="javascript:;" data-id="88" class="list-group-item">分享购买成功调用,增加积分并获得相应的积分</a> 298 <a href="javascript:;" data-id="88" class="list-group-item">分享购买成功调用,增加积分并获得相应的积分</a>
299 - <a href="javascript:;" data-id="89" class="list-group-item">支付完成处理库存,购物车(不需调用)</a>  
300 </div> 299 </div>
301 </div> 300 </div>
302 </div> 301 </div>
@@ -8106,7 +8105,7 @@ @@ -8106,7 +8105,7 @@
8106 </div> 8105 </div>
8107 </div> 8106 </div>
8108 </div> 8107 </div>
8109 - <h2>系统消息接口</h2> 8108 + <h2>系统消息接口**</h2>
8110 <hr> 8109 <hr>
8111 <div class="panel panel-default"> 8110 <div class="panel panel-default">
8112 <div class="panel-heading" id="heading-58"> 8111 <div class="panel-heading" id="heading-58">
@@ -11316,6 +11315,12 @@ @@ -11316,6 +11315,12 @@
11316 <td></td> 11315 <td></td>
11317 <td>支付订单号</td> 11316 <td>支付订单号</td>
11318 </tr> 11317 </tr>
  11318 + <tr>
  11319 + <td>type</td>
  11320 + <td>integer</td>
  11321 + <td></td>
  11322 + <td>支付方式(0:微信支付,1:余额支付)</td>
  11323 + </tr>
11319 </tbody> 11324 </tbody>
11320 </table> 11325 </table>
11321 </div> 11326 </div>
@@ -11354,6 +11359,10 @@ @@ -11354,6 +11359,10 @@
11354 <input type="string" class="form-control input-sm" id="pay_order_sn" required placeholder="支付订单号" name="pay_order_sn"> 11359 <input type="string" class="form-control input-sm" id="pay_order_sn" required placeholder="支付订单号" name="pay_order_sn">
11355 </div> 11360 </div>
11356 <div class="form-group"> 11361 <div class="form-group">
  11362 + <label class="control-label" for="type">type</label>
  11363 + <input type="integer" class="form-control input-sm" id="type" required placeholder="支付方式(0:微信支付,1:余额支付)" name="type">
  11364 + </div>
  11365 + <div class="form-group">
11357 <button type="submit" class="btn btn-success send" rel="83">提交</button> 11366 <button type="submit" class="btn btn-success send" rel="83">提交</button>
11358 <button type="reset" class="btn btn-info" rel="83">重置</button> 11367 <button type="reset" class="btn btn-info" rel="83">重置</button>
11359 </div> 11368 </div>
@@ -12008,133 +12017,13 @@ @@ -12008,133 +12017,13 @@
12008 </div> 12017 </div>
12009 </div> 12018 </div>
12010 </div> 12019 </div>
12011 - <div class="panel panel-default">  
12012 - <div class="panel-heading" id="heading-89">  
12013 - <h4 class="panel-title">  
12014 - <span class="label label-success">GET</span>  
12015 - <a data-toggle="collapse" data-parent="#accordion89" href="#collapseOne89"> 支付完成处理库存,购物车(不需调用) <span class="text-muted">/api/wxpay/handle</span></a>  
12016 - </h4>  
12017 - </div>  
12018 - <div id="collapseOne89" class="panel-collapse collapse">  
12019 - <div class="panel-body">  
12020 -  
12021 - <!-- Nav tabs -->  
12022 - <ul class="nav nav-tabs" id="doctab89">  
12023 - <li class="active"><a href="#info89" data-toggle="tab">基础信息</a></li>  
12024 - <li><a href="#sandbox89" data-toggle="tab">在线测试</a></li>  
12025 - <li><a href="#sample89" data-toggle="tab">返回示例</a></li>  
12026 - </ul>  
12027 -  
12028 - <!-- Tab panes -->  
12029 - <div class="tab-content">  
12030 -  
12031 - <div class="tab-pane active" id="info89">  
12032 - <div class="well">  
12033 - 支付完成处理库存,购物车(不需调用) </div>  
12034 - <div class="panel panel-default">  
12035 - <div class="panel-heading"><strong>Headers</strong></div>  
12036 - <div class="panel-body">  
12037 -  
12038 - </div>  
12039 - </div>  
12040 - <div class="panel panel-default">  
12041 - <div class="panel-heading"><strong>参数</strong></div>  
12042 - <div class="panel-body">  
12043 - <table class="table table-hover">  
12044 - <thead>  
12045 - <tr>  
12046 - <th>名称</th>  
12047 - <th>类型</th>  
12048 - <th>必选</th>  
12049 - <th>描述</th>  
12050 - </tr>  
12051 - </thead>  
12052 - <tbody>  
12053 - <tr>  
12054 - <td></td>  
12055 - <td>$pay_order_sn</td>  
12056 - <td></td>  
12057 - <td></td>  
12058 - </tr>  
12059 - <tr>  
12060 - <td></td>  
12061 - <td>$openid</td>  
12062 - <td></td>  
12063 - <td></td>  
12064 - </tr>  
12065 - </tbody>  
12066 - </table>  
12067 - </div>  
12068 - </div>  
12069 - <div class="panel panel-default">  
12070 - <div class="panel-heading"><strong>正文</strong></div>  
12071 - <div class="panel-body">  
12072 -</div>  
12073 - </div>  
12074 - </div><!-- #info -->  
12075 -  
12076 - <div class="tab-pane" id="sandbox89">  
12077 - <div class="row">  
12078 - <div class="col-md-12">  
12079 - <div class="panel panel-default">  
12080 - <div class="panel-heading"><strong>参数</strong></div>  
12081 - <div class="panel-body">  
12082 - <form enctype="application/x-www-form-urlencoded" role="form" action="/api/wxpay/handle" method="get" name="form89" id="form89">  
12083 - <div class="form-group">  
12084 - <label class="control-label" for=""></label>  
12085 - <input type="$pay_order_sn" class="form-control input-sm" id="" required placeholder="" name="">  
12086 - </div>  
12087 - <div class="form-group">  
12088 - <label class="control-label" for=""></label>  
12089 - <input type="$openid" class="form-control input-sm" id="" required placeholder="" name="">  
12090 - </div>  
12091 - <div class="form-group">  
12092 - <button type="submit" class="btn btn-success send" rel="89">提交</button>  
12093 - <button type="reset" class="btn btn-info" rel="89">重置</button>  
12094 - </div>  
12095 - </form>  
12096 - </div>  
12097 - </div>  
12098 - <div class="panel panel-default">  
12099 - <div class="panel-heading"><strong>响应输出</strong></div>  
12100 - <div class="panel-body">  
12101 - <div class="row">  
12102 - <div class="col-md-12" style="overflow-x:auto">  
12103 - <pre id="response_headers89"></pre>  
12104 - <pre id="response89"></pre>  
12105 - </div>  
12106 - </div>  
12107 - </div>  
12108 - </div>  
12109 - <div class="panel panel-default">  
12110 - <div class="panel-heading"><strong>返回参数</strong></div>  
12111 - <div class="panel-body">  
12112 -  
12113 - </div>  
12114 - </div>  
12115 - </div>  
12116 - </div>  
12117 - </div><!-- #sandbox -->  
12118 -  
12119 - <div class="tab-pane" id="sample89">  
12120 - <div class="row">  
12121 - <div class="col-md-12">  
12122 - <pre id="sample_response89"></pre>  
12123 - </div>  
12124 - </div>  
12125 - </div><!-- #sample -->  
12126 -  
12127 - </div><!-- .tab-content -->  
12128 - </div>  
12129 - </div>  
12130 - </div>  
12131 </div> 12020 </div>
12132 12021
12133 <hr> 12022 <hr>
12134 12023
12135 <div class="row mt0 footer"> 12024 <div class="row mt0 footer">
12136 <div class="col-md-6" align="left"> 12025 <div class="col-md-6" align="left">
12137 - Generated on 2019-04-04 15:53:15 </div> 12026 + Generated on 2019-04-04 17:50:01 </div>
12138 <div class="col-md-6" align="right"> 12027 <div class="col-md-6" align="right">
12139 <a href="https://www.fastadmin.net" target="_blank">FastAdmin</a> 12028 <a href="https://www.fastadmin.net" target="_blank">FastAdmin</a>
12140 </div> 12029 </div>