Получать данные POST внутри углового компонента - PullRequest
0 голосов
/ 26 декабря 2018

Я интегрирую Платежный шлюз в Angular версии 7.

Платежный шлюз требует ввода данных, как показано ниже

requestParameter : MerchantId||CollaboratorID||Encrypted_string

Я попытался отправить форму, используя ngForm, как показано ниже, но мой запрос неотправка в URL платежного шлюза и получение ошибки 404, не найденной для "http://localhost:4200/direcPayment/" и сообщения об истечении сеанса платежного шлюза в ответ на это. Это похоже на то, что если в запросе вы получили сообщение об истечении сеанса, что-то не так.

<form  (ngSubmit)="onSubmit()" method="POST" mt-3>

Ниже в коде я передаю необходимый параметр и выполняю вызов http.post, как показано ниже. При нажатии OnSubmit я вызвал formSubmit с зашифрованной строкой

formSubmit( encryptedString) {
const formData = new FormData();
formData.append( 'requestParameter', encryptedString);

this.http.post('direcPayment/', formData, httpFormDataOptions)
    .subscribe((resposne) => {
      console.log(resposne);
    });

}

Внутри "httpFormDataOptions" я добавил следующие заголовки

const httpFormDataOptions = {
  headers: new HttpHeaders(),
};
httpFormDataOptions.headers.append('Access-Control-Allow-Origin', '*');
httpFormDataOptions.headers.append('Access-Control-Allow-Methods', 'DELETE, POST, GET, OPTIONS');
httpFormDataOptions.headers.append('Access-Control-Allow-Headers', 'Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With');

/ direcPayment относится к моему файлу Proxy.config.json, как показано ниже

{
  "/direcPayment": {
  "target": "PaymentGatewayURL",
  "secure": true,
  "pathRewrite": {"^/direcPayment" : ""},
  "changeOrigin": true
  },
}

, поэтому в настоящее время я использовал ngNoFormи отправьте форму с помощью атрибута действия.

Поэтому я хочу задать два запроса

  1. Отправка формы на ссылку платежного шлюза с использованием httpClient POST метод

  2. Платежный шлюз сообщает, что если платеж либо успешен / неуспешен, то он будет перенаправлять на URL успеха / неудачи как данные POST в зашифрованном формате, так как получить данные для конкретногоURL в угловом?Есть ли способ получить данные, если кто-то позвонил на мой угловой URL в обоих случаях, либо используя httpClient Call, либо ngNoForm

Спасибо.

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Предполагая, что у вас есть серверная сторона) для вашего приложения, вам, вероятно, следует обрабатывать всю транзакцию от серверной части.

Если у вас вообще нет серверной части,У меня нет предложений.Я не могу придумать какой-либо безопасный способ сделать это полностью на стороне клиента.

0 голосов
/ 26 декабря 2018

Ваш код:

this.http.post('direcPayment/', formData, httpFormDataOptions)
    .subscribe((resposne) => {
      console.log(resposne);
    });
}

, поэтому почтовые данные будут отправлены на http://localhost:4200/direcPayment/, здесь вы должны указать URL своего платежного шлюза

...