微信小游戏/抖音小游戏SDK接入踩坑记录

devtools/2024/11/30 4:17:21/

文章目录

  • 前言
  • 问题记录
    • 1、用是否存在 wx 这个 API 来判断是微小平台还是抖小平台不生效
    • 2、微小支付的参数如何获取?
    • 3、iOS 平台不支持虚拟支付怎么办?
      • 微小 iOS 端支付时序图:
      • 抖小 iOS 端支付:
    • 4、展示广告时多次回调 onClose
    • 5、在使用单例时 this 引起的 bug
    • 6、使用 fetch 或 axios 封装网络请求框架时编译报错

前言

上两篇文章写了如何搭建一个小游戏聚合SDK以及如何打包前端SDK,这篇文章会记录我在接入微小和抖小时遇到的问题及解决办法。

问题记录

1、用是否存在 wx 这个 API 来判断是微小平台还是抖小平台不生效

官方没有提供判断是微小环境和抖小环境的API,在聚合SDK里需要想办法判断当前环境然后调用对应环境的API,比如在微小环境下不能调用到抖音的登录。微小的API都是 wx 调用,抖音的API 都是 tt 调用,当使用这个区别来区分环境时发现并不生效,原因是抖小也引入了wx api 。需要查找其他办法。

**方法一:**可以根据小游戏 appId 来判断,微小 appIdwx 开头的,比如 wx05be1ceba191eb56 ,抖小的 appIdtt 开头的,比如:tt98abci12lhhiopw52

**方法二:**在官方 API 文档中查到各自特有方法判断,比如抖小的 API tt.getLaunchOptionsSync 微小就没有。另 tt.getLaunchOptionsSync 这个 api 可以获取抖小的小游戏 appIdwx.getAccountInfoSync 就是微小特有的 API。

// 平台检测
export function getPlatformType() {if (typeof wx.getAccountInfoSync !== 'undefined' && typeof wx.getSystemSetting === 'function') {return WeChatMiniSDK} else if (typeof tt.getLaunchOptionsSync !== 'undefined' && typeof tt.canIUse === 'function') {return DouyinMiniSDK} 
}

2、微小支付的参数如何获取?

根据微小支付文档API https://developers.weixin.qq.com/minigame/dev/api/midas-payment/wx.requestMidasPaymentGameItem.html 在前端调用微小支付接口时需要传递 paySigsignature ,但是这两个参数的参数签名都不是前端生成的,需要服务端生成。也就是在用户创建微小订单时需要先向开发者服务端获取签名信息,至于如何简化流程可以和开发者服务端商量。

3、iOS 平台不支持虚拟支付怎么办?

根据微小/抖小后台虚拟支付的开通里提示,虚拟支付是不支持 iOS 端的。经过调研现有小游戏,iOS 端的支付都是开发者另辟蹊径实现的。微小/抖小的流程也并不一致,下面分开说。

微小 iOS 端支付时序图:

在这里插入图片描述

  1. 用户发起支付
  2. CP创建订单,向中台前端SDK

http://www.ppmy.cn/devtools/138097.html

相关文章

前后端中Json数据的简单处理

很多时候因为数据库中不想创建中间表去存一些数据,所以在一个实体表中用一个json字段去存储并处理这些数据。本人倾向在前端js部分直接处理json数据,后端只做存储,不做处理。 前端在获取表单的时候解析 toEdit(row) {this.editForm { ...ro…

Springboot 整合 Java DL4J 打造文本摘要生成系统

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c=1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编程,高并发设计,Springboot和微服务,熟悉Linux,ESXI虚拟化以及云原生Docker和K8s…

九、Spring Boot集成Spring Security之授权概述

文章目录 往期回顾:Spring Boot集成Spring Security专栏及各章节快捷入口前言一、授权概述二、用户权限三、用户授权流程三、Spring Security授权方式1、请求级别授权2、方法级别授权 往期回顾:Spring Boot集成Spring Security专栏及各章节快捷入口 Spr…

网络安全、Web安全、渗透测试之笔经面经总结(一)

本篇文章总结涉及以下几个方面: 对称加密非对称加密? 什么是同源策略? cookie存在哪里?可以打开吗 xss如何盗取cookie? tcp、udp的区别及tcp三次握手,syn攻击? 证书要考哪些? …

【数据结构-队列】力扣641. 设计循环双端队列

设计实现双端队列。 实现 MyCircularDeque 类: MyCircularDeque(int k) :构造函数,双端队列最大为 k 。 boolean insertFront():将一个元素添加到双端队列头部。 如果操作成功返回 true ,否则返回 false 。 boolean insertLast() &#xff1…

微软要求 Windows Insider 用户试用备受争议的召回功能

拥有搭载 Qualcomm Snapdragon 处理器的 Copilot PC 的 Windows Insider 计划参与者现在可以试用 Recall,这是一项臭名昭著的快照拍摄 AI 功能,在今年早些时候推出时受到了很多批评。 Windows 营销高级总监 Melissa Grant 上周表示:“我们听…

记录pbootcms提示:登录失败:表单提交校验失败,请刷新后重试的解决办法

问题描述 pbootcms后台登录的时候提示“登录失败:表单提交校验失败,请刷新后重试!” 解决办法 删除runtime目录,或尝试切换PHP版本,选择7.3或5.6一般就能解决了。

【计算机视觉】图像基本操作

1. 数字图像表示 一幅尺寸为MN的图像可以用矩阵表示,每个矩阵元素代表一个像素,元素的值代表这个位置图像的亮度;其中,彩色图像使用3维矩阵MN3表示;对于图像显示来说,一般使用无符号8位整数来表示图像亮度&…