alipay.trade.page.pay 解决vue项目下 支付宝支付不能在新窗口打开收银台的问题

由于PC端扫码支付,返回的是个form表单形式,需要在新窗口打开支付宝收银台如下
在这里插入图片描述
1.提前创建一个dom
在这里插入图片描述
2.将获取到的form表单放入进去,再通过js触发from里面的input type=‘submit’ 标签点击事件来打开收银台。如下图
在这里插入图片描述
3.但是发现打开的收银台是当前页面内,直接替换了当前页面的url路径,这不是我们想要的结果,
问题处理方式:
在这里插入图片描述
给form添加target属性,再通过执行input click事件就可以在新的标签打开支付宝收银台了

Vue打包生成的Android app要调用支付宝支付,你需要在Vue项目中集成支付宝的SDK,并通过生成的orderStr参数来实现调起支付宝进行支付的功能。以下是基本步骤: 1. 在Vue项目中引入支付宝SDK。 2. 根据支付宝SDK的文档配置相关的参数,如商户ID、应用ID等。 3. 使用`alipay.trade.app.pay`接口生成支付订单,将返回的orderStr参数传递给Android客户端。 4. 在Vue项目中编写调起支付宝的代码,通常是在支付按钮的点击事件中调用SDK提供的方法。 5. Android端需要处理从Vue传来的orderStr参数,并使用支付宝提供的SDK来调起支付界面。 具体步骤如下: - 在Vue中,当用户点击支付按钮时,你需要在事件处理函数中生成订单并获取到orderStr参数。 - 将orderStr参数通过某种方式(例如URL参数、本地存储等)传递给原生的Android代码。 - Android端接收到orderStr后,使用支付宝SDK提供的接口来调起支付宝支付。 这里是一个示例的Vue端代码片段: ```javascript // Vue组件中,处理支付的函数 pay() { // 调用后端API,获取支付订单信息 this.$http.post('/api/getAlipayOrder', { /* 传递必要参数 */ }) .then(response => { const { orderStr } = response.data; // 将orderStr传递到原生Android代码中 this.invokeNativeFunction(orderStr); }) .catch(error => { console.error(error); }); }, // 假设这是调用原生Android代码的函数 invokeNativeFunction(orderStr) { // 实际上需要通过Android原生代码来实现 // 这里仅为示例 console.log('调起支付宝支付', orderStr); }, ``` 在Android原生代码中,你需要编写相应的逻辑来接收这个orderStr,并调用支付宝SDK的相关方法来启动支付。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值