精易论坛

标题: 关于易支fu插件理解跟修改成码支fu的办法 [打印本页]

作者: chenn    时间: 2025-2-11 17:23
标题: 关于易支fu插件理解跟修改成码支fu的办法
本帖最后由 chenn 于 2025-2-11 17:27 编辑

最近搭建了一个支fu:pay.1987a.cn由于没有支fu通道,我用的马支fu,但是不稳定还有封号风险,所以我就一直在思考,能不能直接自己做一个
然后采用易支fu的方式,所以
我的研究是这个ustd插件,我研究了俩个通宵,终于有了大成果。
首先解释一下他这个插件的原理是什么。
他的原理第一submit方法我的个人认为他是初始化的功能。
在这个里面用户可以跳转到任意链接
然后就是关于他的回调功能,这里我研究了一下当中也请教了咸鱼的开发大牛,
这里采用的是宝塔面板监控的方式,他的原版是一分钟,我给该成了五秒一运行,
具体废话不多说,各位请看代码。回调api,各位可以机qi人插件进行开发。回调,
其他的demo我就不发了,基本的主成分源码就是这个。现在也只是个初始代码,后期会继续修复具体的bug。提醒一句:市场上开源的ustd的易支fu插件全部都有bug问题,
根据我改写这套源代码的理解,他的开源版本是存在缺失css,js,调用。等各类问题。
[PHP] 纯文本查看 复制代码
<?php

class chennan_plugin
{

             public static $info = [
        'name'     => 'chennan',
        'showname' => '辰楠',
        'author'   => '辰楠',
        'link'     => 'https://1987a.cn',
        'types'    => ['alipay,wxpay,qqpay,bank'],
        'inputs'   => [
            'appid'  => [
                'name' => '商户号',
                'type' => 'input',
                'note' => '无用',
            ],
            'appkey' => [
                'name' => '无用',
                'type' => 'input',
                'note' => '无用',
            ],
            'appurl' => [
                'name' => '判断多少秒内的支fu',
                'type' => 'input',
                'note' => '判断多少秒内的支fu',
            ],
        ],
        'select'   => null,
        'note'     => '',
    ];

    public static function submit()
    {
        global $channel, $order, $conf, $DB, $cdnpublic;
        
        $valid   =  intval($channel['appurl'])*1000;
        
        $商户号 = $channel['appid'];
        //$rate    = self::getRate();
        $金钱    = round($order['realmoney'], 2);
        $expire  = date('Y-m-d H:i:s', strtotime($order['addtime']) - intval($channel['appurl']));;
        $params = [$channel['id'], 0, $expire, $order['trade_no'], $order['money']];
        $row    = $DB->getRow('select * from pre_order where channel = ? and status = ? and addtime >= ? and trade_no != ? and money = ? order by param desc limit 1', $params);
        if ($row) {
            $usdt = bcadd($row['param'], 0.01, 2);
        }

        $DB->exec('update pre_order set param = ? where trade_no = ?', [$usdt, $order['trade_no']]);

        ob_clean();
   
        header("application:text/html;charset=UTF-8");

         $GLOBALS['PLUGIN_PATH'] = '/www/wwwroot/pay.1987a.cn/plugins/chennan';

        require_once $GLOBALS['PLUGIN_PATH'] . '/pay.php';

        exit(0);

    }
   
     public static function cron(array $channel)
    {
       global $DB;
      
       $jsonString =$channel['config'];
       $jsonArray = json_decode($jsonString, true);
       $appurl = $jsonArray['appurl'];
       $appid = $jsonArray['appid'];
        $addtime = date('Y-m-d H:i:s', time() - intval($appurl));
        //var_dump($channel);
        
        
        $rows = $DB->query('select * from pre_order where channel = ? and status = ? and addtime >= ?', [$channel['id'],0,$addtime]);
        
        while ($order = $rows->fetch(PDO::FETCH_ASSOC)) {
         
          //echo $order['realmoney'];
         
            $api    = "回调api。" . $order['realmoney'];
            
           $resp   = get_curl($api);
           
           if($resp=="1")
           {
             processNotify($order, $order['trade_no']);   
             echo sprintf("订单回调成功:%s\n", $order['trade_no']);   
           }
         //
         
         
            
        }
         
        echo "---[监控执行结束: " . date('Y-m-d') . "]---\n" . $channel['appurl'];
    }


}










作者: chenn    时间: 2025-2-11 17:29
有些没有必要的东西我没有删,你们可以自行删除,修改!
作者: qqmqqg    时间: 2025-2-11 18:28
666666666666666666666666
作者: year1970    时间: 2025-2-12 08:30
感谢分享
作者: myl1712    时间: 2025-2-12 10:14
出一个usdt 的支fu例子
作者: please    时间: 2025-2-13 09:39
感谢分享,支持开源!!!




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4