18910140161

Vue实现银联支付,但是报交易可能存在风险

顺晟科技

2022-09-03 12:27:18

431

在vue项目中使用了vue.config.js处理了跨域操作,后台返回给我一个form表单,我直接在页面中添加这一段代码。并执行form表单的方法,银联支付方就告诉我们是交易可能存在风险但是使用jquery就可以实现支付询问过银联的防钓鱼域名,也包含我访问的域名求问各位大佬 这是什么问题,应该如何解决呢


顺晟科技:

你有尝试过$("#pay_form")[0].submit()吗,这个才是和Vue等价的代码,$("#pay_form").submit是jQuery封装的

ajax提交(包括axios)不可以跨域。你写的jQuery,其实是用的form的提交。

$("#pay_form")[0].submit()这种方式尝试了 可以正常访问

对的 ,但是放到vue这边我个人就有点迷糊了,因为看着支付宝也是这样,但是可以正常运行

我看了你写,你这样其实会累加div的,你在Vue的模板html里面增加一个指定id的div,每次操作这个div的innerHTML,submit之后清空,这样的话,其实和Vue完全没关系了

我发现一个问题,你的示例的submit,是点击之后触发的,你Vue里面是请求结束获取之后触发,这里面有一个用户点击时间差,时间过长会导致,用户点击触发的这个行为,失去意义,导致你后面的操作变成不安全,你也可以试试这方面的,这个我也只是了解,你可以修改你的demo,在获取渲染之后,直接触发原生submit,看能不能触发这个问题

因为项目本身是要处理跨域操作,form表单是从接口中获取,然后添加到页面内,然后执行submit事件

我们是先通过接口获取到的form表单

您的意思是我在vue里直接获取到dom数据,进行渲染,然后直接执行submit()事件,有可能form表单没有加载完全,中间间隔了一个时间差是嘛

从页面操作讲,你直接通过form触发,就相当于机器触发,正常用户是无感form的,你应该精确到内部button[type=submit]等价的元素的点击事件,模拟用户的点击,而不是form的submit

form 表单提交,是支持跨域的,不做任何设置。

直接赋值给iframe 但是 好像没有用 并没有触发

访问银联,为啥要在 vue.config.js处理跨域操作?form提交,本来就是支持跨域的。

这种方法也还是不太能行,只能看见银联那边报这个

好的 我这就尝试下,感谢您的建议

虽然vue不建议直接操作dom,但是并没有禁止直接操作dom。document.getxxxx ,找到表单,然后就可以submit了。

我这边获取到的是这样的form表单

其实,这是一个元素HTML的form表单,如何使用,如果提交的问题。jQuery 是对原生form的提交的封装。

别试了,直接<iframe src="res.data">,你的获取的内容里面.在完成加载之后会自动触发submit的,不需要你干什么的

我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航