当前位置:   article > 正文

uniapp开发安卓app调起H5支付宝支付(Android)_uniapp app 浏览器拉起支付宝支付

uniapp app 浏览器拉起支付宝支付

前言

最近遇到一个客户要求在app内完成H5页面支付宝支付,绞尽脑汁,最终搞出来了.

步骤

第一步

你在第一个页面需要一个支付按钮,或者去支付的操作,(简单来说就是一个方法,跳转支付页面)

注意:这个地方有个坑,可能是能力有限,就是你跳转支付,付完钱,如果你不点完成的话,返回app,此刻后端是拿不到你支付完成或者没有支付完成的这个动作.于是,我就看了一下地铁充值地铁卡的操作

解决办法:就是你点击支付的时候,出现这个弹窗,当用户点击"我知道了",再去跳转支付(暂时只能这样啦)

第二步

如上图,触发这个方法,跳转到,app内的支付宝内嵌页面

第三步

ps:第一个就是内嵌,去uniapp的官网可以查看;

     第二个是刚刚第一步跳转过来的参数;

     第三个是要跳转到H5页面,的网址和参数(这个H5页面网址需要自己写代码,然后放在服务器上 面,拿到这个网址,代码后面有)

     第四个是一个比较重要的一步(这个是监听支付宝支付是否完成)

     第五个css随便写吧

第四步(这个是H5的代码)

  1. <template>
  2. <view class="content">
  3. <!-- 后端生成的表单,使用v-html可以接收 -->
  4. <view class="alipaysubmit" v-html="formContent"></view>
  5. </view>
  6. </template>
  7. <script>
  8. export default {
  9. data() {
  10. return {
  11. formContent: '',
  12. }
  13. },
  14. onLoad({
  15. token,
  16. useTo,
  17. userId,
  18. price,
  19. id
  20. }) {
  21. if (!token) return;
  22. this.Getpayment(token,userId,useTo,price,id)
  23. },
  24. methods: {
  25. Getpayment(token,userId,useTo,price,id) {
  26. uni.request({
  27. // 请求地址
  28. url: 'http://www.qq.com',
  29. // 请求方式
  30. method:'GET',
  31. // 请求参数
  32. data:{
  33. id:id || '',
  34. price:price,
  35. useTo:useTo,
  36. userId:userId
  37. },
  38. // 是否携带token
  39. header: {
  40. "Authorization":token
  41. },
  42. success:(e)=> {
  43. // 支付成功后拿到表单
  44. this.formContent = e.data
  45. // 成功之后的回调
  46. this.$nextTick(() => {
  47. // 这个地方要注意,根据表单,所携带的方法去调用提交方法就会显示出,支付界面
  48. document.forms[0].submit()
  49. })
  50. },
  51. fail(e) {
  52. //失败之后的回调
  53. uni.showToast({
  54. icon:'none',
  55. msg:e
  56. })
  57. }
  58. })
  59. },
  60. }
  61. }
  62. </script>
  63. <style>
  64. .alipaysubmit {
  65. display: none;
  66. }
  67. .content {
  68. display: flex;
  69. flex-direction: column;
  70. align-items: center;
  71. justify-content: center;
  72. }
  73. .logo {
  74. height: 200rpx;
  75. width: 200rpx;
  76. margin-top: 200rpx;
  77. margin-left: auto;
  78. margin-right: auto;
  79. margin-bottom: 50rpx;
  80. }
  81. .text-area {
  82. display: flex;
  83. justify-content: center;
  84. }
  85. .title {
  86. font-size: 36rpx;
  87. color: #8f8f94;
  88. }
  89. </style>

这个H5的代码,不用多说了吧,新建一个项目,把这个代码复制进去,pages.json里面注册这个页面,直接打包就行了,把上面的网址,换成你自己服务器的网址(也可以使用我git的代码,完成打包,替换域名,请求域名即可)

注意:这个里面代码的注释,都有介绍.

第五步

第五步,看第一个框子,有一个uni.$on这个方法,(在第三步的地方有一个方法,那个方法是监听订单变化的,当他发生变化就回来调用这个this.GetFind()这个方法)()()不管是失败还是成功这个order都会变化,主要是为了调用这个方法.

第二个框子,有一个方法,大概就是后端,可以看见你完成了支付操作,并且支付宝把这个成功或者是失败的信息存储起来,然后放在这个接口里面,你调用这个接口,,就可以拿到你到底是成功还是失败的信息,

第六步

这一步大概就是在这个manifest.json这个文件里面设置一下这个东西,具体要不要,看你拼接的路径是怎么写的.

附言

git地址:alipay_h5: alipay-H5页面代码

结语

点个赞啦,点个关注!有什么不对的地方,欢迎指正.感谢

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号