uni-app 解析支付宝form表单,h5 app唤起支付宝

x33g5p2x  于9个月前 转载在 uni-app  
字(2.1k)|赞(0)|评价(0)|浏览(450)

1.通过接口拿到form表单

code为后端返回的form表单数据;

document则是使用 document.querySelector('body').innerHTML 生成的html页面;

2.将form表单渲染成页面

2-1.h5是直接使用document方法
  1. let res = "支付宝返回form表单"
  2. // console.log(res);
  3. // #ifdef H5
  4. //将接口返回的Form表单显示到页面
  5. document.querySelector('body').innerHTML = res;
  6. //调用submit 方法
  7. document.forms[0].submit()
  8. // #endif
2-2.APP需要使用renderjs

renderjs基础学习请看: renderjs官网介绍

APP项目下,不使用renderjs,则不支持ocument,window方法。

完整代码如下:

  1. <template>
  2. <view>
  3. <!-- 支付宝授权 -->
  4. <template>
  5. <view class="padding-sm text-df">
  6. <view class="text-lg text-black text-bold">支付宝授权说明:
  7. </view>
  8. <view class="text-sm text-black margin-top-sm">
  9. 1、如果需要使用支付宝进行订单支付,需要先完成支付宝授权
  10. </view>
  11. <view class="text-sm text-black margin-top-sm">
  12. 2、用支付宝扫描登录后,完成授权
  13. </view>
  14. </view>
  15. <view class="padding flex flex-direction">
  16. <button class="cu-btn bg-blue lg" @click="alipayBut">支付宝授权</button>
  17. </view>
  18. </template>
  19. <!-- #ifdef APP-PLUS -->
  20. <view @click="renderScript.emitData" :msg="isvForm" :change:msg="renderScript.emitData" class="renderjs"id="renderjs-view">
  21. </view>
  22. <!-- #endif -->
  23. </view>
  24. </template>
  25. <script>export default{
  26. data() {
  27. return{
  28. isvForm: ''};
  29. },
  30. onLoad() {},
  31. methods: {
  32. alipayBut() {
  33. let res = "支付宝返回form表单"
  34. //#ifdef H5
  35. //将接口返回的Form表单显示到页面
  36. document.querySelector('body').innerHTML =res;
  37. //调用submit 方法
  38. document.forms[0].submit()
  39. //#endif
  40. //#ifdef APP-PLUS
  41. this.isvForm =res;
  42. //#endif
  43. }
  44. }
  45. }
  46. </script>
  47. <!-- #ifdef APP-VUE -->
  48. <script module="renderScript" lang="renderjs">export default{
  49. data() {
  50. return{}
  51. },
  52. mounted() {},
  53. methods: {
  54. //app 使用h5 打开支付宝form表单
  55. emitData(e) {
  56. console.log("renderJS", e);
  57. if (e != '') {
  58. document.querySelector('body').innerHTML =e;
  59. //console.log(document);
  60. document.forms[0].submit()
  61. }
  62. }
  63. }
  64. }
  65. </script>
  66. <!-- #endif -->
  67. <style>page {
  68. background-color: #FFFFFF !important;
  69. }
  70. </style>
  71. <style lang="scss" scoped>
  72. </style>

解析支付宝form表单

本文来自博客园,作者:虚乄,转载请注明原文链接:https://www.cnblogs.com/lovejielive/p/17893802.html

相关文章

最新文章

更多