pc 端 前端对接支付宝支付-前端获取支付宝返回的form 表单以及submit提交表单,自动跳转支付页面扫码支付

项目中用到了微信扫码,支付宝扫码支付。前端调取支付宝接口(后台进行了封装,没有直接调取支付宝接口)。
调用接口返回数据中,会有一串form表单字符串返回,前端需要做的就是把这串form 表单字符串通过appendchild 方法添加到当前页面中,并且执行这个表单的submit() 方法,表单提交以后,会自动跳转到支付宝扫码支付页面

返回的form数据大概如下,(可能会有差别)

<form name="punchout_form" method="post" action="https://openapi.alipay.com/gateway.do?charset=GBK&method=alipay.trade.page.pay&sign=tXR6yxB9Uowu7tfbXVPHBoQXeyOqP2JXvo%2Fzmz%2BIA08aWin63h1%2FF7gHNN7I2K%2FnTV3ZYtvPkILu%2FS8uPmzpsAv1SJev0UNN2AbLDIGvbd%2BWn5neyIUqKcu5ySP1S8Bt4fbnvkMgnlijR25obVi5aFbj99JBZDrpeJ5cB9uq7Ccx7nX54%2F7coNv26PFD%2FPirlIKVVr2avD2w%3D%3D&return_url=http%3A%2F%2Fwww.shanshiwangluo.com%2F%23%2FpayNotify&notify_url=http%3A%2F%2Fwww.shanshiwangluo.com%2Fssmall%2Fportal%2Forder%2Fpay%2FaliCallback&version=1.0&app_id=2018062260383877&sign_type=RSA2&timestamp=2018-12-15+17%3A13%3A32&alipay_sdk=alipay-sdk-java-dynamicVersionNo&format=json">
<input type="hidden" name="biz_content" value="{    &quot;out_trade_no&quot;:&quot;1812141933252566&quot;,    &quot;product_code&quot;:&quot;FAST_INSTANT_TRADE_PAY&quot;,    &quot;total_amount&quot;:0.02,    &quot;subject&quot;:&quot; 订单:1812141933252566&quot;,    &quot;extend_params&quot;:{    &quot;sys_service_provider_id&quot;:&quot;2018062211454921&quot;    }  }">
<input type="submit" value="立即支付" style="display:none" >
</form>
<script>document.forms[0].submit();</script>

前端实例代码:

//支付宝支付
 if(resp.code=="200"){
 // 添加之前先删除一下,如果单页面,页面不刷新,添加进去的内容会一直保留在页面中,二次调用form表单会出错
 let divForm = document.getElementsByTagName('divform')
    if (divForm.length) {
      document.body.removeChild(divForm[0])
    }
     const div=document.createElement('divform');
     div.innerHTML=resp.data; // data就是接口返回的form 表单字符串
     document.body.appendChild(div);
     document.forms[0].setAttribute('target', '_blank') // 新开窗口跳转
     document.forms[0].submit();
 }else{
     this.$alert("错误:"+resp.data,"提示",{
         confirmButtonText:'确定'
     });
 }

<think>嗯,用户问的是如何创建和编辑页面前端学习路线,特别是用Vue2或Vue3。首先,我得确定用户的基础。可能他们已经有了一些HTML、CSS和JavaScript的基础,但需要明确一下。如果他们还不熟悉这些,可能需要先建议他们巩固基础。 然后,关于Vue的选择,Vue2和Vue3有些差异,尤其是Composition API和Options API的区别。用户可能想知道学哪个更好。现在Vue3是主流,但有些老项目还在用Vue2,所以可能需要都介绍一下,但推荐Vue3。 接下来,创建和编辑页面通常涉及CRUD操作,也就是表单处理、状态管理、路由这些。需要分步骤来规划学习路径。首先要掌握Vue的基础,比如组件、指令、生命周期这些。然后学习Vue Router和Vuex(或者Pinia,因为Vue3推荐使用Pinia)。之后是表单处理和组件库的使用,比如Element UI或Vant。 用户可能还需要知道实际项目如何结构,比如如何组织组件,如何管理API请求,所以Axios和RESTful API的知识也是必要的。此外,权限控制和页面布局也是实际开发中常见的需求,应该包括进去。 还要考虑工具链,比如Vue CLI或者Vite,这些能帮助搭建项目。构建和部署也是最后需要涉及的,用户可能需要知道如何打包和上线他们的应用。 最后,给出一个综合案例,比如用户管理系统,把学到的知识整合起来。这样用户能通过实践巩固所学内容。同时,提醒他们关注官方文档和社区资源,保持学习更新。</think>以下是为您整理的前端页面开发学习路线(Vue2/Vue3方向),按学习阶段分步说明: --- ### 一、基础准备阶段 1. **HTML/CSS** - 掌握基础标签:`<div>`, `<form>`, `<input>` 等 - 学习Flex布局实现响应式设计 - 理解CSS预处理(推荐Sass) - 示例:创建带表单的静态页面 2. **JavaScript ES6+** - 重点掌握:箭头函数、Promise、解构赋值 - 理解模块化开发(import/export) - 示例:实现表单验证逻辑 --- ### 二、Vue框架核心 #### 版本选择建议: - 新项目推荐Vue3(组合式API + `<script setup>`) - 维护旧项目需学习Vue2(选项式API) #### 核心技能: 1. **基础语法** ```html <!-- Vue模板示例 --> <template> <form @submit.prevent="handleSubmit"> <input v-model="formData.name" /> <button type="submit">提交</button> </form> </template> ``` - 掌握:`v-model`, `v-for`, `v-if`, `@event` 等指令 - 理解响应式原理(Vue2: Object.defineProperty / Vue3: Proxy) 2. **组件开发** - 单文件组件结构(.vue文件) - 父子组件通信(props/$emit) - 插槽(slot)使用技巧 3. **状态管理** - Vue2项目使用Vuex - Vue3推荐Pinia ```javascript // Pinia示例 export const useFormStore = defineStore('form', { state: () => ({ formData: { name: '', age: 0 } }), actions: { updateField(field, value) { this.formData[field] = value } } }) ``` --- ### 三、页面开发专项技能 1. **路由管理(Vue Router)** - 配置动态路由 ```javascript const routes = [ { path: '/edit/:id', component: EditPage } ] ``` - 实现页面跳转与导航守卫 2. **表单处理进阶** - 使用`vee-validate`进行表单验证 - 文件上传处理(`<input type="file">` + FormData) - 富文本编辑器集成(推荐Quill或Tiptap) 3. **UI框架选型** | 框架名称 | Vue2支持 | Vue3支持 | 适用场景 | |------------|----------|----------|--------------| | Element UI | ✔️ | ❌ | 中后台管理系统 | | Vant | ✔️ | ✔️ | 移动H5 | | Ant Design | ✔️ | ✔️ | 企业级应用 | --- ### 四、实战开发流程 1. **项目初始化** ```bash # Vue3项目 npm init vue@latest # Vue2项目 vue create my-project ``` 2. **典型页面开发步骤: 1. 定义路由路径 2. 创建页面组件 3. 设计状态管理结构 4. 编写表单双向绑定 5. 实现数据提交对接API) 6. 添加表单验证 7. 处理加载/错误状态 3. **调试技巧 - 使用Vue Devtools检查组件层级 - 利用`console.log`调试响应式数据变化 - 网络请求调试(推荐axios拦截器) --- ### 五、进阶优化方向 1. **性能优化** - 组件懒加载 ```javascript const EditPage = () => import('./EditPage.vue') ``` - 列表渲染优化(`v-for`使用`:key`) 2. **工程化配置** - 封装axios请求实例 - 配置环境变量(`.env`文件) - 编写可复用组件库 3. **TypeScript集成(Vue3推荐)** ```typescript interface UserForm { name: string age: number } const formData = ref<UserForm>({ name: '', age: 0 }) ``` --- ### 六、学习资源推荐 1. 官方文档: - [Vue3中文文档](https://cn.vuejs.org/) - [Vue Router](https://router.vuejs.org/zh/) 2. 实战项目参考: - 用户管理系统(CRUD操作) - 电商后台管理界面 - 博客文章编辑器 建议学习周期:每天3小时练习,约2个月可掌握基础页面开发能力。持续通过实际
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值