快乐每一天

自己选择的路,跪着也要走下去...

项羽 发布的文章

EasyWeiChat&ThinkPHP5.1 实现简单的网页授权登录demo

首先是composer 框架

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 

composer create-project topthink/think=5.1.* tp5

cd tp5

composer require naixiaoxin/think-wechat 

接下来是demo

<?php
namespace app\index\controller;
use EasyWeChat\Kernel\Messages\Text;
use EasyWeChat\Factory;
use think\facade\Session;
session_start();
class Index
{

    public function hello($name = 'ThinkPHP5')
    {    

        $user = $_SESSION['wechat_user'];

        return 'hello,' . $name;
    }

    public function confcc(){
        $config = [
            'app_id' => '**************',
            'secret' => '*******************************',
            'response_type' => 'array',
            'oauth' => [
                'scopes'   => ['snsapi_userinfo'],
                'callback' => '/index/index/oauth_callback',
            ],
            // ..
        ];
        return $config;
    }

    public function clears(){
        print_r($_SESSION);
        session_destroy();
    }

    public function profile(){

        $config=$this->confcc();
        $app = Factory::officialAccount($config);
        $oauth = $app->oauth;

        // 未登录
        if (empty($_SESSION['wechat_user'])) {

            $_SESSION['target_url'] = '/index/index/profile';

            return $oauth->redirect();
            // 这里不一定是return,如果你的框架action不是返回内容的话你就得使用
            // $oauth->redirect()->send();
        }
// 已经登录过
        $user = $_SESSION['wechat_user'];

        var_dump($user);

        // echo 122;
        // exit;

    }

    public function oauth_callback(){

        $config=$this->confcc();

        $app = Factory::officialAccount($config);
        $oauth = $app->oauth;

// 获取 OAuth 授权结果用户信息
        $user = $oauth->user();

        $_SESSION['wechat_user'] = $user->toArray();

        $targetUrl = empty($_SESSION['target_url']) ? '/index/index/hello' : $_SESSION['target_url'];

        header('location:'. $targetUrl); // 跳转到 user/profile
    }


}

2019-08-06T02:09:45.png

关注公众号,然后在微信里面执行下面的连接既可以体验这个代码的效果,不到30行就能完成简单的授权获取用户信息功能,感谢强大的EasyWeichat

http://easywx.cssnb.com/index/index/profile

阅读全文

支付宝套路支付,不需要手续费(请勿支付)

2019-07-24T09:32:58.png

alipays://platformapi/startapp?appId=09999988&actionType=toAccount&goBack=NO&amount=1.00&userId=2088302888783610&memo=117263_zyBwfBgyuHXUJbrviZooH26NQTLRYeMB   

那个二维码就是上面这个东西,拼接出来后别人支付后对应的备注也支付过去了,然后轮询,查询自己企业支付宝的那个已完成订单比对备注信息,成功了就改数据库,页面跳转。

参考:
链接1 https://blog.csdn.net/xinrui5577/article/details/89679652

链接2 https://www.jianshu.com/p/96e06f49e412

阅读全文
none

PHP 截取中文中某一部分为*号显示

public function substr_cut2($user_name){
        $strlen     = mb_strlen($user_name, 'utf-8');
        if($strlen<2){
            return $user_name;
        }else{
            $firstStr     = mb_substr($user_name, 0, 1, 'utf-8');
            $lastStr     = mb_substr($user_name, -1, 1, 'utf-8');
            if($strlen>4){
                $firstStr     = mb_substr($user_name, 0,1, 'utf-8');    

                // iconv_set_encoding("internal_encoding", "utf-8");

                if (PHP_VERSION_ID < 50600) {  
                    iconv_set_encoding('input_encoding', 'UTF-8');  
                    iconv_set_encoding('output_encoding', 'UTF-8');  
                    iconv_set_encoding('internal_encoding', 'UTF-8');  
                } else {  
                    ini_set('default_charset', 'UTF-8');  
                }


                $lastStr     = iconv_substr($user_name,-($strlen-3));
                 // $lastStr     = mb_substr($user_name, -1,$strlen-3, 'utf-8');
                 return $strlen == 2 ? $firstStr . str_repeat('*', mb_strlen($user_name, 'utf-8') - 1) : $firstStr . str_repeat("*",2) . $lastStr;


            }else{
                return $strlen == 2 ? $firstStr . str_repeat('*', mb_strlen($user_name, 'utf-8') - 1) : $firstStr . str_repeat("*", 2) . $lastStr;
            }
        }
    }
阅读全文
none

在linux后台运行脚本的方法和命令

后台运行脚本

touch test.sh 
vi test.sh
写入
./gocron web
保存退出

执行
./test.sh &
ctrl+c

完成

执行脚本test.sh:./test.sh
中断脚本test.sh:ctrl+c
在1的基础上将运行中的test.sh,切换到后台并暂停:ctrl+z
执行ctrl+z后,test.sh在后台是暂停状态(stopped),使用命令:bg number让其在后台开始运行(“number”是使用jobs命令查到的 [ ]中的数字,不是pid)

直接在后台运行脚本test.sh:./test.sh &
查看当前shell环境中已启动的任务情况:jobs
将test.sh切换到前台运行:fg %number(”number”为使用jobs命令查看到的 [ ] 中的数字,不是pid)
中断后台运行的test.sh脚本:先fg %number切换到前台,再ctrl+c;或是直接kill %number

阅读全文
none