请叫我思空大人 2022-03-26 14:56 采纳率: 0%
浏览 234

微信支付点金计划,IOS商家小票提示无法获取订单信息,如何解决?

问题遇到的现象和发生背景

与服务商(某银行)对接微信公众号支付,在支付完成后跳转回商家小票时,IOS系统商家小票显示无法获取订单信息,安卓系统可以正常显示

问题相关代码,请勿粘贴截图

以下时前端vue开发的代码

<template>
  <div class="paysuccess-main" v-title data-title="在线支付">
    <div v-if="!isSuccess" class="success-box">
      <div class="status-img">
        <img src="@/assets/img/pay-failed.png" alt=""/>
      </div>
      <div class="status-tip">支付失败</div>
      <div class="order-info">
        <div class="order-num">
          <span class="title">订单编号:</span>
          <span class="contain">{{orderInfo.id?orderInfo.id:''}}</span>
        </div>
        <div class="order-pay-way">
          <span class="title">支付方式:</span>
          <span class="contain">微信支付</span>
        </div>
        <div class="order-pay-time">
          <span class="title">支付时间:</span>
          <span class="contain">{{orderInfo.paymentTime?orderInfo.paymentTime:''}}</span>
        </div>
      </div>
      <div class="pay-btn">
        <img src="@/assets/img/pay-failed-btn.png"/>
        <span @click="returnPay"></span>
      </div>
    </div>
    <div v-else class="fail-box">
      <div class="status-img">
        <img src="@/assets/img/pay-success.png" alt=""/>
      </div>
      <div class="status-tip success">支付成功</div>
      <div class="order-info">
        <div class="order-num">
          <span class="title">订单编号:</span>
          <span class="contain">{{orderInfo.id?orderInfo.id:''}}</span>
        </div>
        <div class="order-pay-way">
          <span class="title">支付方式:</span>
          <span class="contain">微信支付</span>
        </div>
        <div class="order-pay-time">
          <span class="title">支付时间:</span>
          <span class="contain">{{orderInfo.paymentTime?orderInfo.paymentTime:''}}</span>
        </div>
      </div>
      <div class="pay-btn">
        <img src="@/assets/img/pay-success-btn.png"/>
        <span @click="watchOrder"></span>
      </div>
    </div>
  </div>
</template>
<script>
import {getOrderDetail, getPayStatus} from "@/api/api";
import axios from "axios";
import Vue from "vue";
import {ACCESS_TOKEN} from "@/store/mutation-types";
export default {
  data() {
    return {
      orderInfo: {},
      isSuccess:true,
      url:'https://course.wxjy.com.cn/paySuccess'
    };
  },
  methods: {
    getPayStatusFun() {
      let mchData ={action:'onIframeReady',displayStyle:'SHOW_CUSTOM_PAGE'};
      let postData = JSON.stringify(mchData);
      //与ifarem  交互
      parent.postMessage(postData,'https://payapp.weixin.qq.com');
      axios({
        url:'/xxxxxx/checkPayResult',
        baseURL: window._CONFIG['apiUrl'],
        method:'get',
        headers:{
          'Content-Type': 'application/json;',
          'X-Access-Token': Vue.ls.get(ACCESS_TOKEN)
        },
        params:{ serialNum: this.getUrlParam('trace_no') }}).then(res=>{
        if(res.data.code !==200){
          this.isSuccess = false
          return
        }
        this.orderInfo = res.data.result.order;
      })
    },
    returnPay() {
      let mchData = {action:'jumpOut',jumpOutUrl:'https://xxxxxxxxxxx.com.cn/myOrder'}
      let postData = JSON.stringify(mchData)
      parent.postMessage(postData,'https://payapp.weixin.qq.com')
    },
    watchOrder() {
      let mchData = {action:'jumpOut',jumpOutUrl:`https://xxxxxxx.com.cn/orderInfo?orderId=${this.orderInfo.id}`}
      let postData = JSON.stringify(mchData)
      parent.postMessage(postData,'https://payapp.weixin.qq.com')
    },
    // 获取地址栏参数
    getUrlParam(name) {
      var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
      var r = window.location.search.substr(1).match(reg); //匹配目标参数
      if (r != null) return unescape(r[2]);
      return null; //返回参数值
    },
  },
  mounted() {
    document
        .querySelector("html")
        .setAttribute("style", "height: 600px !important;width:640px !important; margin:0 auto;");
    document
        .querySelector("body")
        .setAttribute("style", "height: 600px !important;width:640px !important; margin:0 auto;");
    this.getPayStatusFun();
  },
};
</script>
<style lang="less" scoped>
.paysuccess-main {
  .fail-box,
  .success-box{
    position: relative;
    width: 100%;
    height: 100%;
    background: #F6F6F6;
    opacity: 1;
    .status-img{
      width: 9.267rem;
      height: 10.133rem;
      margin:0 auto;
      margin-top:0.667rem;
      img{
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
    }
    .status-tip{
      width: 100%;
      text-align: center;
      font-size: 0.933rem;
      font-weight: bold;
      line-height: 0.933rem;
      color: #C80000;
    }
    .success {
      color: #00C800;
    }
    .order-info {
      width: 17.667rem;
      border-top:0.133rem dotted #000000;
      margin:0 auto;
      margin-top:3.667rem;
      font-size: 0.8rem;
      font-weight: 400;
      line-height: 0.933rem;
      color: #333333;
      .order-num,
      .order-pay-way,
      .order-pay-time{
        margin-top: 0.667rem;
        .contain {
          float:right;
          color: #999999;
        }
      }
      .order-pay-time{
        padding-bottom:0.667rem;
      }
    }
    .pay-btn {
      position: absolute;
      top:9.533rem;
      left: 6rem;
      width: 11.019rem;
      height: 7.353rem;
      img{
        width: 100%;
        height: 100%;
        object-fit: cover;
      }
      span {
        position: absolute;
        top:2.6rem;
        left: 2.7rem;
        display: inline-block;
        width: 5.4rem;
        height: 1.5rem;
      }
    }
  }
}
</style>



运行结果及报错内容

ios显示无发获取订单信息时vconsule没显示

我的解答思路和尝试过的方法

在不同vue的不同生命周期去进行对JSAPI的访问,IOS都无法正常显示

我想要达到的结果

安卓和IOS系统在支付成功后都能跳转到指定的商家小票页面,并且商家小票可以正常显示

  • 写回答

1条回答 默认 最新

  • 「已注销」 2022-03-26 15:38
    关注

    是小程序还是在你的应用里面啊

    评论

报告相同问题?

问题事件

  • 创建了问题 3月26日

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作