Как интегрировать платежный шлюз для цитрусовых в Zend?

Я пытаюсь интегрировать платежный шлюз для цитрусовых в свое приложение, написанное на Zend. Я использую проверку цитрусовых в общежитии. Я генерирую подпись в контроллере, а затем передать эти значения, чтобы посмотреть, где создается форма.
Код контроллера:

$formPostUrl = "https://sandbox.citruspay.com/sslperf/your-vanityUrlPart";
$secret_key = "xxxxxx"; // your secret key
$vanityUrl = "xxx"; // your vanity url
$merchantTxnId = uniqid();
$orderAmount = "1.00";
$currency = "INR";
$TransactionData= $vanityUrl.$orderAmount.$merchantTxnId.$currency;
$securitySignature = hash_hmac('sha1', $TransactionData, $secret_key);
$data = [
'formPostUrl' => $formPostUrl,
'vanityUrl' => $vanityUrl,
'merchantTxnId' => $merchantTxnId,
'orderAmount' => $orderAmount,
'currency' => $currency,
'securitySignature' => $securitySignature,
'returnUrl' => $this->hostName.'/'.'paymentResponse'
];
return new ViewModel ( $data );

Посмотреть код:

<form align="center" method="post" action="<?php echo $formPostUrl;?>">
<input ng-model="amount" type="number"class="form-control" id="orderAmount" name="orderAmount" placeholder="Enter the amount here.." required min="1" />
<input type="hidden" id="merchantTxnId" name="merchantTxnId" value="<?php echo $merchantTxnId;?>" />
<input type="hidden" id="currency" name="currency" value="<?php echo $currency;?>" />
<input type="hidden" name="returnUrl" value="<?php echo $returnUrl;?>" />
<input type="hidden" id="secSignature"  name="secSignature" value="<?php echo $securitySignature;?>" />
<input type="Submit" value="Pay Now"/>
</form>

Но проблема здесь в том, что securitySignature создается с использованием суммы, и этот код записывается в контроллере, но я должен взять сумму от пользователя, как форму, которая должна быть в поле зрения. Я не могу создать securitySignature в представлении, потому что для этого требуется security_key, который я не могу записать в целях безопасности. Есть ли какой-либо способ из представления, я мог бы отправить сумму в контроллер, а затем в контроллере сделать запрос POST для formPostUrl, который также перенаправляет меня в formPostUrl, как в форме мы делаем запрос post, который также перенаправляет на этот URL.

1

Решение

Попробуйте шаги ниже,

  1. Создайте промежуточный обработчик отправки на вашем контроллере
  2. Соберите там параметры пользовательского интерфейса и добавьте свои серверные / скрытые параметры.
  3. Направьте вашу форму пользовательского интерфейса на новый промежуточный обработчик отправки
  4. Свяжите вызов с платежным шлюзом, используя curl оттуда (например: https://stackoverflow.com/a/5676572/1304559).

П.С .: Вам может потребоваться сохранить состояние второго запроса в журналах или в базе данных или на всякий случай для аудита.

Надеюсь, поможет!

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector