Настроить надо api digiseller.com на моем сайте. Уже проходит оплата, но надо где то поставить inv my.digiseller.com/inside/api_general.asp#searchuniquecode
inv — уникальный номер оплаченного счёта в системе учета Digiseller
настоятельно рекомендуем сохранять это значение в базе и каждый раз проверять его на уникальность, чтобы избежать двойных начислений

конечно это за денюжку.

вот код оплаты

<?php
$id_seller = *******;
$pass_DS = "*********";

function r_b_ch($tmp, $text) {
    $text = preg_replace("/".$tmp."/", "", $text);
    return $text;
}

function request($act, $req) {
    $ch = curl_init($act);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $req);
    $result = curl_exec($ch);
    if(curl_errno($ch)) echo "Curl Error number = ".curl_errno($ch).", Error desc = ".curl_error($ch)."<br />";
    curl_close($ch);
    return $result;
}

function request_chech_code($id_seller, $unique_code, $sign) {
    $request = "<?xml version=\"1.0\" encoding=\"windows-1251\"?>
    <digiseller.request>
    <id_seller>".$id_seller."</id_seller>
    <unique_code>".$unique_code."</unique_code>
    <sign>".$sign."</sign>
    </digiseller.request>";
    return $request;
}

function answer_check_code($id_seller, $unique_code, $sign) {
    $tmp_id_seller = "[^0-9]";
    $id_seller = r_b_ch($tmp_id_seller, $id_seller);
    $tmp_unique_code = "[^A-Z0-9]";
    $unique_code = substr(r_b_ch($tmp_unique_code, $unique_code), 0, 16);
    $tmp_sign = "[^A-Za-z0-9]";
    $id_sign = r_b_ch($tmp_sign, $sign);
    $request = request_chech_code($id_seller, $unique_code, $sign);
    $answer = request('https://shop.digiseller.ru/xml/check_unique_code.asp', $request);
    return $answer;
}

function answer_check_code1($xml,$code,$modx,$user_id) {
    $modx->addPackage('cabinet', $modx->getOption('core_path').'components/cabinet/model/');
    $get = $modx->getObject('cabinetOperations', ['tariff'=>$code]);
    if(!is_object($get)){
        if (!$user_id) return;
        $user = $modx->getObject('modUser',['id'=>$user_id]);
        $balance = $user->get('balance');
        
        $balance += (string)$xml->amount;
        $user->set('balance',$balance);
        $user->save();
        
        $cabinet = $modx->newObject('cabinetOperations');
        $cabinet->set('type', 1);
        $cabinet->set('user_id', $user_id);
        $cabinet->set('value', (string)$xml->amount);
        $cabinet->save();
        
        $profile = $user->getOne('Profile');

        $modx->getService('mail', 'mail.modPHPMailer');
        $modx->mail->set(modMail::MAIL_FROM, $modx->getOption('emailsender'));
        $modx->mail->set(modMail::MAIL_FROM_NAME, $modx->getOption('site_name'));
        $modx->mail->address('to', $profile->get('email'));
        $modx->mail->set(modMail::MAIL_SUBJECT, 'Баланс пополнен');
        $modx->mail->set(modMail::MAIL_BODY, $modx->getChunk('balanceEmail'));
        $modx->mail->setHTML(true);
        $modx->mail->send();
    }
}




if(isset($_POST['uniquecode'])){
    $modx->log(xPDO::LOG_LEVEL_ERROR,'uniquecode p+'.print_r($_POST,1)); 
    $_POST["uniquecode"] = substr(preg_replace("/[^A-Z0-9]/", "", $_POST["uniquecode"]), 0, 16);
    if(!empty($_POST["uniquecode"]) && strlen($_POST["uniquecode"]) == 16) {
        $sign = md5($id_seller.":".$_POST["uniquecode"].":".$pass_DS);
        $answer = answer_check_code($id_seller, $_POST["uniquecode"], $sign);
        $xml_data = new SimpleXMLElement($answer);
        if($xml_data) {
            answer_check_code1($xml_data,$_POST["uniquecode"],$modx, $modx->user->get('id'));
        }
    }
}

if(isset($_GET['uniquecode']) && isset($_GET['UserID'])){
    $modx->log(xPDO::LOG_LEVEL_ERROR,'uniquecode g+'.print_r($_GET,1)); 
    $_GET["uniquecode"] = substr(preg_replace("/[^A-Z0-9]/", "", $_GET["uniquecode"]), 0, 16);
    if(!empty($_GET["uniquecode"]) && strlen($_GET["uniquecode"]) == 16) {
        $sign = md5($id_seller.":".$_GET["uniquecode"].":".$pass_DS);
        $answer = answer_check_code($id_seller, $_GET["uniquecode"], $sign);
        $xml_data = new SimpleXMLElement($answer);
        if($xml_data) {
            answer_check_code1($xml_data,$_GET["uniquecode"],$modx,(int)$_GET["UserID"]);
        }
    }
}


если этого мало, могу сайт куда нибудь в личку прислать.