123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?php
- // +----------------------------------------------------------------------
- // | Think.Admin
- // +----------------------------------------------------------------------
- // | 版权所有 2014~2017 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
- // +----------------------------------------------------------------------
- // | 官方网站: http://think.ctolog.com
- // +----------------------------------------------------------------------
- // | 开源协议 ( https://mit-license.org )
- // +----------------------------------------------------------------------
- // | github开源项目:https://github.com/zoujingli/Think.Admin
- // +----------------------------------------------------------------------
- namespace app\index\controller;
- use controller\BasicWechat;
- use service\DataService;
- use service\PayService;
- class Wap extends BasicWechat
- {
- /**
- * 网页授权DEMO
- */
- public function index()
- {
- dump($this->oAuth(true)); // 获取用户详情信息
- dump($this->fansinfo); // 输出用户信息
- }
- /**
- * 微信二维码支付DEMO
- * @return \think\response\Json|\think\response\View
- */
- public function payqrc()
- {
- $method = '_payqrc_' . strtolower($this->request->get('action'));
- if (method_exists($this, $method)) {
- return $this->$method();
- }
- return view();
- }
- /**
- * 获取二维码支付
- * @return \think\response\Json
- */
- protected function _payqrc_payqrc()
- {
- list($pay, $order_no) = [load_wechat('pay'), session('pay-test-order-no')];
- if (empty($order_no)) {
- $order_no = DataService::createSequence(10, 'wechat-pay-test');
- session('pay-test-order-no', $order_no);
- }
- if (PayService::isPay($order_no)) {
- return json(['code' => 2, 'order_no' => $order_no]);
- }
- $url = PayService::createWechatPayQrc($pay, $order_no, 1, '微信扫码支付测试!');
- if ($url !== false) {
- return json(['code' => 1, 'url' => $url, 'order_no' => $order_no]);
- }
- $this->error("生成支付二维码失败,{$pay->errMsg}[{$pay->errCode}]");
- }
- /**
- * 重置测试订单号
- */
- protected function _payqrc_reset()
- {
- session('pay-test-order-no', null);
- }
- /**
- * 微信JSAPI支付DEMO
- * @return \think\response\Json|\think\response\View
- */
- public function payjs()
- {
- $this->openid = $this->oAuth(false);
- $method = '_payjs_' . strtolower($this->request->get('action'));
- if (method_exists($this, $method)) {
- return $this->$method();
- }
- return view();
- }
- /**
- * 获取JSAPI支付参数
- * @return \think\response\Json
- */
- protected function _payjs_options()
- {
- $order_no = session('pay-test-order-no');
- if (empty($order_no)) {
- $order_no = DataService::createSequence(10, 'wechat-pay-test');
- session('pay-test-order-no', $order_no);
- }
- if (PayService::isPay($order_no)) {
- return json(['code' => 2, 'order_no' => $order_no]);
- }
- $pay = load_wechat('pay');
- $options = PayService::createWechatPayJsPicker($pay, $this->openid, $order_no, 1, 'JSAPI支付测试');
- if ($options === false) {
- $options = ['code' => 3, 'msg' => "创建支付失败,{$pay->errMsg}[$pay->errCode]"];
- }
- $options['order_no'] = $order_no;
- return json($options);
- }
- /**
- * 重置测试订单号
- */
- protected function _payjs_reset()
- {
- session('pay-test-order-no', null);
- }
- }
|