我将Angular 7中集成了支付网关。
付款网关需要像下面这样输入数据
requestParameter : MerchantId||CollaboratorID||Encrypted_string
我尝试使用ngForm提交表单,如下所示,但我的请求未发布到付款网关url,并且在响应中未找到“ http://localhost:4200/direcPayment/”的错误404和付款网关的会话过期消息。就像请求中出现任何错误一样,您会收到会话过期消息。
<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并使用action属性提交表单。
所以我想问两个问题
使用httpClient POST方法将表单提交到付款网关链接
付款网关说,如果付款成功/失败,那么它们将以加密格式的POST数据重定向到成功/失败URL,那么如何接收数据到成角度的特定URL?如果有人在两种情况下都使用httpClient调用或ngNoForm
谢谢。
答案 0 :(得分:0)
您的代码:
Jan
因此帖子数据将提交到Jan = s.Tickets.Where(x => x.SellDate.Value.Month == this.Jan.Month && x.SellDate.Value.Year == TmpYear.Year).Select(e => (int?)e.Points).Sum() ?? 0
,您应该在此处放置付款网关的网址
答案 1 :(得分:0)
假设您的应用程序具有服务器端),则可能应该从后端处理整个事务。
如果您根本没有后端,那么我没有任何建议。我想不出任何安全的方法来完全在客户端上做到这一点。
答案 2 :(得分:0)
您应该定义一个 API Post
端点,该端点将接收付款有效负载响应并将重定向到您所需的前端页面。
.NET 示例是:
[HttpPost("api/payment-done"]
public IActionResult PaymentDone([FromBody] PaymentPayload request)
{
//do stuff with payload
return Redirect("http://your-website-page");
}