Случайная строка в merchantTransactionId, опубликованная в API обработчика платежей - PullRequest
0 голосов
/ 22 сентября 2019

Мне нужно случайным образом сгенерировать строку для отправки в платежный процессор для сохранения в качестве идентификатора торговой транзакции.Я использую CodeIgniter PHP Framework.Документы API Peach Payments говорят, что я должен использовать "merchantTransactionId"

Хорошо, поэтому я добавил merchantTransactionId= в запрос API платежей и попытался добавить GenerateRandomString в запрос API, а также пробовал миллионы других переменных,но безрезультатно.Единственный раз, когда это работает для меня, это если я использую сумму в долларах, то выплачиваемая сумма отображается в консоли администратора платежных систем, но я хочу, чтобы случайный идентификатор отображался в качестве идентификатора транзакции, поскольку у меня не может быть заплаченных сумм.

Вот код запроса API:

function paymentGateway($amount) {
$url = "https://oppwa.com/v1/checkouts";
$data = "entityId=8ac7a4c96afd0574016afd649e36013f" . "&amount=" . $amount . "&currency=ZAR" . "&paymentType=DB" . "&merchantTransactionId=amarechat_" .  $generateRandomString(24);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization:Bearer ******'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);// this should be set to 
true in production
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$responseData = curl_exec($ch);
if(curl_errno($ch)) {
return curl_error($ch);
}
curl_close($ch);
return $responseData;
}


function request($amount) {
    $url = "https://oppwa.com/v1/checkouts";
    $data = "entityId=******" .
    "&amount=" . $amount .
    "&currency=ZAR" .
    "&merchantTransactionId=amarechat_" . $generateRandomString .
    "&paymentType=DB";

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      'Authorization:Bearer ******'));
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);// this should be set to true in production
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $responseData = curl_exec($ch);
    if(curl_errno($ch)) {
    return curl_error($ch);
    }
    curl_close($ch);
    return $responseData;
}

, поэтому, где вы видите & merchantTransactionId "в приведенном выше коде, мне требуется, чтобы случайная строка текста / чисел была сгенерирована и отправлена ​​в платежный процессор.

Это код главной страницы, который генерирует форму платежа на основе суммы, которую пользователь выбрал для депозита: (это прекрасно работает. Только merchantTransactionId не работает ...

<?php
$responseData = request($amount);
$a = json_decode($responseData, true);
//  print_r($responseData);

?>

<script src="https://oppwa.com/v1/paymentWidgets.js?checkoutId=<?=$a['id']?>"></script>
...