875384189@qq.com
875384189@qq.com
  • 发布:2019-10-18 17:04
  • 更新:2020-02-14 20:32
  • 阅读:554

uniapp H5 支付表单提交问题解决烦方案

分类:uni-app
      uniapp的H5封装支付宝个微信支付,以支付宝为例,下单成功后返回的是HTML表单和一段JS,把代码输出到浏览器,JS只执行submit事件POST跳转提交表单到支付宝。说白了就是  
    <form action="支付宝接口">  
        <input name="money" value="100.00" />  
        <input type="submit" value="支付">  
    </form>  

这段代码点击的亚子

但是uni编译的H5不行,哪怕v-html都不行,即便这个代码在H5上本身没有问题。

我也是实在没办法,就用过数据库实现,过程如下
1:下单成功,获取到HTML
2:存入数据库,我设置的结构是 sign char(13) html text end (int 11),一个是存取唯一标识,一个是for内容,一个是过期是间
3:数据插入成功,反回访问地址,比如后台返回url='https://ask.dcloud.net.cn?sign=g4hdcbg15ryh5';
4:uniapp拿到sign 执行location.href=url;
5:这个地址不是uniapp的范围,是传统html站点,通过sign取出数据,输出就好了,并且删除这条表单数据

前端代码:

                    //#ifdef H5  
                    if(res.type=='alih5'){  
                        window.open(res.order,'_self')  
                        window.close();  
                    }  
                    //#endif

后台输出

 public function actionAlwap()  
    {  
        $sign = Input::trim('get.sign', 0);//查询唯一令牌  
        $form = Alwap::find()->where(['sign' => $sign])->one();  
        if (!$form) {//没有返回  
            return $this->redirect(Input::referrer())->send();  
        }  
        $form->delete();//获取成功,不管怎样直接删除  
        if ($form->time + 60 < time()) {//过去就返回  
            return $this->redirect(Input::referrer())->send();  
        }  
        return $form->form;//否则输出  
    }  
}
2019-10-18 17:04 分享
已邀请:
289458845@qq.com

289458845@qq.com

老哥,没看明白。 uniapp打包的h5 - 获取到后台返回的form表单怎么跳转支付宝啊

447336761@qq.com

要回复问题请先登录注册