穿山甲广告平台子账户绑定&管理教程

穿山甲广告平台子账户绑定&管理教程

1. 入口

点击穿山甲首页【账户信息】即可进行进入【账户权限】管理页面;

2. 人员管理

2.1 新增人员

1. 进入人员管理页面,点击【新增人员】,并按相应提示信息添加新账户;

新添加的邮箱会收到注册邀请邮件,请按邮件提示进行注册并登录,登录成功后即与主账户完成绑定;

2. 如有需要,可点击【人员分组】| 【新增分组】进行账户分组管理;

3. 添加人员成功后,可在操作页面继续编辑关联账户的角色权限以及关联的应用信息;

2.2 关联应用

新增人员成功激活后,勾选列表左侧方框并点击【批量关联应用】,应用关联成功后,子账户可查看已关联应用信息。(注:管理员默认可以查看所有应用信息)

2.3 角色权限

超级管理员

第一个注册人员默认为超管,可以查看所有模块的所有信息;超管权限可转移,转移后原超管变为普通管理员。

管理员

管理员角色默认可以查看所有模块的所有信息,请谨慎设置管理员权限。

运营、财务、技术

可点击后分别查看各角色权限,管理员也可自行编辑。

新增角色

如果在默认角色之外有其他角色需求,管理员可在角色权限页面左侧列表下方点击【新增角色】按钮,按需配置角色名称以及对应的角色权限即可。

3. 应用分配

在应用分配页面,管理员可以查看应用与人员之间的关联关系,以及一键为多个应用关联多个团队成员,高效便捷。

在应用分配列表页勾选左侧方框,点击批量关联人员,选中关联人员后点击确定即可实现一键关联。

4. 绑定穿山甲移动端

每个子账户都可以绑定自己的穿山甲移动端账户,同时可以在移动端查看对应权限的数据;更多详细介绍请点击:穿山甲移动端介绍

5. 操作日志

为了降低多角色登录带来的操作风险,穿山甲新上线了操作日志功能,管理员可在操作日志页面查看团队成员的历史操作记录,每一步操作都有迹可循。

穿山甲广告平台注册开发者教程

穿山甲广告平台注册开发者教程

注册穿山甲

第一步:进入穿山甲官网 https://www.csjplatform.com/ ,点击右上角【注册】

第二步:用邮箱或手机号直接注册并登录;

第三步:登录账号后点击【账户信息】-【资质认证】,将该界面信息补充完整。填写账号名称,选择所属行业,国家和地区请根据流量所在地谨慎选择,中国大陆默认以人民币结算,其他地区默认以美元结算(提交后将不可修改)。

getIDFA 获取广告标识符 IDFA APP开发获取苹果IDFA开发教程

getIDFA 获取广告标识符 IDFA APP开发获取苹果IDFA开发教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

• 获取广告标识符 IDFA;

• 设置 – 隐私 – 跟踪,设置跟踪开关;

• 仅支持苹果,安卓版推荐使用 getIMEI / getOAID;

核心代码示例,详情参阅demo

jsBridge.getIDFA(function(idfa){
  if (idfa) {
    alert(idfa);
  } else {
    alert("没有权限或已限制跟踪");
  }
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.getIDFA(function(idfa){
  if (idfa) {
    alert(idfa);
  } else {
    alert("没有权限或已限制跟踪");
  }
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.getIDFA(function(idfa){
  if (idfa) {
    alert(idfa);
  } else {
    alert("没有权限或已限制跟踪");
  }
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

注册一门APP开发平台账号教程(手机打包版)

注册一门APP开发平台账号教程(手机打包版)

1.首先登录一门APP开发平台首页,点击免费试用按钮,进入注册页面

注册一门开发者

点击之后会跳转到注册登录页面;

2.推荐使用手机号登录,直接输入手机号,获取验证码即可快捷完成注册和登录!

当然您也可以使用第三方账号授权登录:

微信扫码登录

QQ授权登录

关注公共号登录

支付宝登录

强烈推荐使用手机短信一键登录

点击手机号登录,之后会弹出输入框

手机号快捷注册登录一门

输入手机号和验证码之后即可快捷登录一门APP开发者中心;

getDeviceId 获取设备ID APP开发获取设备ID教程

getDeviceId 获取设备ID APP开发获取设备ID教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

getDeviceId 获取设备ID APP开发获取设备ID教程

• 由于隐私限制,此设备ID已不可靠。

• 安卓推荐使用 getIMEI + getOAID

• 苹果推荐使用 getIDFA

核心代码示例,详情参阅demo

jsBridge.getDeviceId(function(id){
  alert(id);
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.getDeviceId(function(id){
  alert(id);
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.getDeviceId(function(id){
  alert(id);
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

getIMEI 获取移动设备识别码 IMEI/MEID APP开发获取IMEI教程

getIMEI 获取移动设备识别码 IMEI/MEID APP开发获取IMEI教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

getIMEI 获取移动设备识别码 IMEI/MEID APP开发获取IMEI教程

• 获取移动设备识别码 IMEI/MEID,需要 READ_PHONE_STATE 隐私权限;

• 多个 IMEI/MEID 用逗号(,)分隔,拨号输入 *#06# 可查看;

• Android 10+ 不能获取 IMEI,此接口返回 Android Id;

• 仅支持安卓,苹果版推荐使用 getIDFA。

核心代码示例,详情参阅demo

jsBridge.getIMEI(function(imei){
  if (imei) {
    alert(imei);
  } else {
    alert("获取失败或没有权限");
  }
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.getIMEI(function(imei){
  if (imei) {
    alert(imei);
  } else {
    alert("获取失败或没有权限");
  }
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.getIMEI(function(imei){
  if (imei) {
    alert(imei);
  } else {
    alert("获取失败或没有权限");
  }
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

getOAID 获取开放广告标识符 OAID APP开发获取OAID教程

getOAID 获取开放广告标识符 OAID APP开发获取OAID教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

getOAID 获取开放广告标识符 OAID APP开发获取OAID教程

• 详情请参考 移动安全联盟 官方说明;

• 除了各厂家较老的安卓系统基本都支持,可配合 getIMEI 使用;

• 仅支持安卓,苹果版推荐使用 getIDFA。

核心代码示例,详情参阅demo

jsBridge.getOAID(function(oaid){
  if (oaid) {
    alert(oaid);
  } else {
    alert("获取失败或此设备不支持");
  }
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.getOAID(function(oaid){
  if (oaid) {
    alert(oaid);
  } else {
    alert("获取失败或此设备不支持");
  }
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.getOAID(function(oaid){
  if (oaid) {
    alert(oaid);
  } else {
    alert("获取失败或此设备不支持");
  }
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

request 发起苹果 ID 授权登录 APP开发接入苹果账号登录apple ID登录教程

request 发起苹果 ID 授权登录 APP开发接入苹果账号登录apple ID登录教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

request 发起苹果 ID 授权登录 APP开发接入苹果账号登录apple ID登录教程

核心代码示例,详情参阅demo

//发起授权登录,回调返回 data 是 JSON 数据
//请提交到您的服务器 验证 授权信息
jsBridge.sia.request(function(succ, data) {
  if (succ) {
    var str = JSON.stringify(data);
    alert("授权成功:\n" + str);
    jsBridge.setClipboardText(str);
    alert("已复制到剪贴板");
  } else {
    alert("取消了授权登录或不支持");
  }
});

//授权成功时回调函数返回的 data 示例数据
var exampleData = {
    //jwt Token 请在服务器端验证此 Token 是否有效
    //验证通过后使用此 Token 的 claims.sub 作为用户唯一标识
    "identityToken": "eyJraWQiOiJlWGF1bm1MIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLnVwaW4xNTguYXBwLng4IiwiZXhwIjoxNjI4MzI1Mzc4LCJpYXQiOjE2MjgyMzg5NzgsInN1YiI6IjAwMTIwNi43MjA3NDI2YWM5MjA0MzcyOGEzYTZiZDA3NzkwYTdlNy4wNzQ1IiwiY19oYXNoIjoiemxMMXhHNWJsS0dQMEszRVRVZFVudyIsImVtYWlsIjoiZDIyMjhtNGo5bkBwcml2YXRlcmVsYXkuYXBwbGVpZC5jb20iLCJlbWFpbF92ZXJpZmllZCI6InRydWUiLCJpc19wcml2YXRlX2VtYWlsIjoidHJ1ZSIsImF1dGhfdGltZSI6MTYyODIzODk3OCwibm9uY2Vfc3VwcG9ydGVkIjp0cnVlfQ.iXbtj7rG4dBuyPNETEkc25MkWIF1P6Usfnyu2BByQQFv9dQ0vKvz_GbOLm2pjr19Sszp_Y6osiGNg3O5e1hKK3RJyVY4aeoMgdd4v6nDkuu0Qdetc0BPVYk_K2VSxpi80Gd40h6DScGSbQI9g8iJJ7b_YCCUpjxuS54HR5QUyCduV8Fwz_NijiYn8J5P0cARdNBaCvqOENuw8gVN2icWb3h6IUP9HDa89YndcWu93xHXeCDKSzu043PjhpkUh4E_F5EltElFoGZiRKXCBwPS5YW4zD_aD7by_n5U-Y2TleeDKzTyPu6NBkvfxN9vYaZEvM0QmXKMBH9J3-MZpo9lOg",
    "realUserStatus": "Unknown",
    //授权码
    "authorizationCode": "c558352f4c2b64a45afea4b612c6d9827.0.srsqw.ZG8w9UusG2jZ8Q4_x-2tVg",
    //用户姓名数据(注意只有第一次登录时才有,以后都会返回空数据)
    "fullName": {
        //家族姓氏
        "familyName": "张",
        //前缀
        "namePrefix": "",
        //名字
        "givenName": "三",
        //后缀
        "nameSuffix": "",
        //中名
        "middleName": "",
        //昵称
        "nickname": "永远的神"
    },
    //电子邮箱
    "email": "aaa@bbb.com",
    //状态
    "state": "",
    //用户唯一标识(与解码 jwt 格式 identityToken 出来的 claims.sub 字段相同)
    "user": "001206.7207426ac92043728a3a6bd07790a7e7.0745"
};
/*
解码 jwt 格式 identityToken 的示例
可使用此地址在线解码 http://jwt.calebb.net/

=== header
{
 kid: "eXaunmL",
 //签名算法
 alg: "RS256"
}.
=== claims
{
 iss: "https://appleid.apple.com",
 aud: "com.upin158.app.x8",
 exp: 1628325378,
 iat: 1628238978,
 //用户唯一标识
 sub: "001206.7207426ac92043728a3a6bd07790a7e7.0745",
 c_hash: "zlL1xG5blKGP0K3ETUdUnw",
 email: "d2228m4j9n@privaterelay.appleid.com",
 email_verified: "true",
 is_private_email: "true",
 auth_time: 1628238978,
 nonce_supported: true
}.
=== 签名数据 
[signature]

*/

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//发起授权登录,回调返回 data 是 JSON 数据
//请提交到您的服务器 验证 授权信息
jsBridge.sia.request(function(succ, data) {
  if (succ) {
    var str = JSON.stringify(data);
    alert("授权成功:\n" + str);
    jsBridge.setClipboardText(str);
    alert("已复制到剪贴板");
  } else {
    alert("取消了授权登录或不支持");
  }
});

//授权成功时回调函数返回的 data 示例数据
var exampleData = {
    //jwt Token 请在服务器端验证此 Token 是否有效
    //验证通过后使用此 Token 的 claims.sub 作为用户唯一标识
    "identityToken": "eyJraWQiOiJlWGF1bm1MIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLnVwaW4xNTguYXBwLng4IiwiZXhwIjoxNjI4MzI1Mzc4LCJpYXQiOjE2MjgyMzg5NzgsInN1YiI6IjAwMTIwNi43MjA3NDI2YWM5MjA0MzcyOGEzYTZiZDA3NzkwYTdlNy4wNzQ1IiwiY19oYXNoIjoiemxMMXhHNWJsS0dQMEszRVRVZFVudyIsImVtYWlsIjoiZDIyMjhtNGo5bkBwcml2YXRlcmVsYXkuYXBwbGVpZC5jb20iLCJlbWFpbF92ZXJpZmllZCI6InRydWUiLCJpc19wcml2YXRlX2VtYWlsIjoidHJ1ZSIsImF1dGhfdGltZSI6MTYyODIzODk3OCwibm9uY2Vfc3VwcG9ydGVkIjp0cnVlfQ.iXbtj7rG4dBuyPNETEkc25MkWIF1P6Usfnyu2BByQQFv9dQ0vKvz_GbOLm2pjr19Sszp_Y6osiGNg3O5e1hKK3RJyVY4aeoMgdd4v6nDkuu0Qdetc0BPVYk_K2VSxpi80Gd40h6DScGSbQI9g8iJJ7b_YCCUpjxuS54HR5QUyCduV8Fwz_NijiYn8J5P0cARdNBaCvqOENuw8gVN2icWb3h6IUP9HDa89YndcWu93xHXeCDKSzu043PjhpkUh4E_F5EltElFoGZiRKXCBwPS5YW4zD_aD7by_n5U-Y2TleeDKzTyPu6NBkvfxN9vYaZEvM0QmXKMBH9J3-MZpo9lOg",
    "realUserStatus": "Unknown",
    //授权码
    "authorizationCode": "c558352f4c2b64a45afea4b612c6d9827.0.srsqw.ZG8w9UusG2jZ8Q4_x-2tVg",
    //用户姓名数据(注意只有第一次登录时才有,以后都会返回空数据)
    "fullName": {
        //家族姓氏
        "familyName": "张",
        //前缀
        "namePrefix": "",
        //名字
        "givenName": "三",
        //后缀
        "nameSuffix": "",
        //中名
        "middleName": "",
        //昵称
        "nickname": "永远的神"
    },
    //电子邮箱
    "email": "aaa@bbb.com",
    //状态
    "state": "",
    //用户唯一标识(与解码 jwt 格式 identityToken 出来的 claims.sub 字段相同)
    "user": "001206.7207426ac92043728a3a6bd07790a7e7.0745"
};
/*
解码 jwt 格式 identityToken 的示例
可使用此地址在线解码 http://jwt.calebb.net/

=== header
{
 kid: "eXaunmL",
 //签名算法
 alg: "RS256"
}.
=== claims
{
 iss: "https://appleid.apple.com",
 aud: "com.upin158.app.x8",
 exp: 1628325378,
 iat: 1628238978,
 //用户唯一标识
 sub: "001206.7207426ac92043728a3a6bd07790a7e7.0745",
 c_hash: "zlL1xG5blKGP0K3ETUdUnw",
 email: "d2228m4j9n@privaterelay.appleid.com",
 email_verified: "true",
 is_private_email: "true",
 auth_time: 1628238978,
 nonce_supported: true
}.
=== 签名数据 
[signature]

*/

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//发起授权登录,回调返回 data 是 JSON 数据
//请提交到您的服务器 验证 授权信息
jsBridge.sia.request(function(succ, data) {
  if (succ) {
    var str = JSON.stringify(data);
    alert("授权成功:\n" + str);
    jsBridge.setClipboardText(str);
    alert("已复制到剪贴板");
  } else {
    alert("取消了授权登录或不支持");
  }
});

//授权成功时回调函数返回的 data 示例数据
var exampleData = {
    //jwt Token 请在服务器端验证此 Token 是否有效
    //验证通过后使用此 Token 的 claims.sub 作为用户唯一标识
    "identityToken": "eyJraWQiOiJlWGF1bm1MIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2FwcGxlaWQuYXBwbGUuY29tIiwiYXVkIjoiY29tLnVwaW4xNTguYXBwLng4IiwiZXhwIjoxNjI4MzI1Mzc4LCJpYXQiOjE2MjgyMzg5NzgsInN1YiI6IjAwMTIwNi43MjA3NDI2YWM5MjA0MzcyOGEzYTZiZDA3NzkwYTdlNy4wNzQ1IiwiY19oYXNoIjoiemxMMXhHNWJsS0dQMEszRVRVZFVudyIsImVtYWlsIjoiZDIyMjhtNGo5bkBwcml2YXRlcmVsYXkuYXBwbGVpZC5jb20iLCJlbWFpbF92ZXJpZmllZCI6InRydWUiLCJpc19wcml2YXRlX2VtYWlsIjoidHJ1ZSIsImF1dGhfdGltZSI6MTYyODIzODk3OCwibm9uY2Vfc3VwcG9ydGVkIjp0cnVlfQ.iXbtj7rG4dBuyPNETEkc25MkWIF1P6Usfnyu2BByQQFv9dQ0vKvz_GbOLm2pjr19Sszp_Y6osiGNg3O5e1hKK3RJyVY4aeoMgdd4v6nDkuu0Qdetc0BPVYk_K2VSxpi80Gd40h6DScGSbQI9g8iJJ7b_YCCUpjxuS54HR5QUyCduV8Fwz_NijiYn8J5P0cARdNBaCvqOENuw8gVN2icWb3h6IUP9HDa89YndcWu93xHXeCDKSzu043PjhpkUh4E_F5EltElFoGZiRKXCBwPS5YW4zD_aD7by_n5U-Y2TleeDKzTyPu6NBkvfxN9vYaZEvM0QmXKMBH9J3-MZpo9lOg",
    "realUserStatus": "Unknown",
    //授权码
    "authorizationCode": "c558352f4c2b64a45afea4b612c6d9827.0.srsqw.ZG8w9UusG2jZ8Q4_x-2tVg",
    //用户姓名数据(注意只有第一次登录时才有,以后都会返回空数据)
    "fullName": {
        //家族姓氏
        "familyName": "张",
        //前缀
        "namePrefix": "",
        //名字
        "givenName": "三",
        //后缀
        "nameSuffix": "",
        //中名
        "middleName": "",
        //昵称
        "nickname": "永远的神"
    },
    //电子邮箱
    "email": "aaa@bbb.com",
    //状态
    "state": "",
    //用户唯一标识(与解码 jwt 格式 identityToken 出来的 claims.sub 字段相同)
    "user": "001206.7207426ac92043728a3a6bd07790a7e7.0745"
};
/*
解码 jwt 格式 identityToken 的示例
可使用此地址在线解码 http://jwt.calebb.net/

=== header
{
 kid: "eXaunmL",
 //签名算法
 alg: "RS256"
}.
=== claims
{
 iss: "https://appleid.apple.com",
 aud: "com.upin158.app.x8",
 exp: 1628325378,
 iat: 1628238978,
 //用户唯一标识
 sub: "001206.7207426ac92043728a3a6bd07790a7e7.0745",
 c_hash: "zlL1xG5blKGP0K3ETUdUnw",
 email: "d2228m4j9n@privaterelay.appleid.com",
 email_verified: "true",
 is_private_email: "true",
 auth_time: 1628238978,
 nonce_supported: true
}.
=== 签名数据 
[signature]

*/

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

checkSupport 检查设备是否支持苹果 ID 授权登录 APP开发接入苹果账号登录教程

checkSupport 检查设备是否支持苹果 ID 授权登录 APP开发接入苹果账号登录教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

checkSupport 检查设备是否支持苹果 ID 授权登录 APP开发接入苹果账号登录教程

♦ 1. Sign In with Apple 苹果 ID 授权登录;

♦ 2. 接入步骤:

♦ 2.1 苹果证书标识符(Identifier)需勾选 “Sign In with Apple” 功能(见示例截图),上传证书并生成苹果版安装包;

♦ 2.2 调用 checkSuport 接口检查当前设备是否支持苹果授权登录,如果支持则进入下一步;

♦ 2.3 调用 request 发起苹果 ID 授权登录,将回调的 data 提交到您的服务器 验证PHP SDK 授权信息;

核心代码示例,详情参阅demo

//高于或等于 iOS 13 才支持苹果 ID 授权登录
jsBridge.sia.checkSupport(function(succ, data) {
  alert(succ ? "支持" : "不支持");
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//高于或等于 iOS 13 才支持苹果 ID 授权登录
jsBridge.sia.checkSupport(function(succ, data) {
  alert(succ ? "支持" : "不支持");
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
//高于或等于 iOS 13 才支持苹果 ID 授权登录
jsBridge.sia.checkSupport(function(succ, data) {
  alert(succ ? "支持" : "不支持");
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

APP实现苹果内购支付IOS内购接入流程步奏

1. 在 App Store Connect 填写 协议、税务和银行业务

2. 在 App Store Connect 添加 沙箱技术测试员(一个假的Apple ID,任意邮箱 + 不低于8位的大小写字母数字组合的密码)

3. 在测试APP的苹果手机 – 设置 – iTunes Store 与 App Store 页面,拉到最底部管理沙盒账户;

4. 在 App Store Connect 点进已经创建好的APP – 功能 – App 内购买项目,增删改查内购商品;

5. 参考 js SDK 文档 接入内购,基本流程如下:

5.1 引导用户购买的时候调用 canMakePayments 检查用户是否支持内购(一般都支持,想简单处理也可以省掉这一步);

5.2 执行 setTransanctionListener 设置交易监听器,在监听回调里面处理所有支付交易流程;

5.3 用户点购买的时候执行 purchase 发起付款,订单号可以放在 applicationUsername 字段,这个会在上一步的监听回调里面原样返回;

6. 重点在于处理 5.2 步 setTransanctionListener 的回调,js 拿到支付凭证(receipt 字段,此时 state 为 1) 后就发到服务器,在服务器上调用苹果提供的接口验证凭证,验证成功就表示苹果已经真的帮你收到钱了,给用户开通相应服务即可;

7. 在调用 finishTransaction 完成交易之前,交易信息会一直存在,所以在确认不再需这个交易信息时(比如 state == 2 交易失败,state == 1 并且已在服务器端确认)应调用 finishTransaction 把他结束掉,以后就不会在 setTransanctionListener 的回调中再次收到这笔交易了;

cancelDownloads 取消下载 APP开发接入苹果内购IOS内购开发教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

cancelDownloads 取消下载 APP开发接入苹果内购IOS内购开发教程

请在 setDownloadListener 中接收下载信息

核心代码示例,详情参阅demo

jsBridge.iap.cancelDownloads({
  //下载内容ID组成的数组
  contentIds: [
    "contentId1",
    "contentId2",
    "..."
  ]
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.cancelDownloads({
  //下载内容ID组成的数组
  contentIds: [
    "contentId1",
    "contentId2",
    "..."
  ]
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.cancelDownloads({
  //下载内容ID组成的数组
  contentIds: [
    "contentId1",
    "contentId2",
    "..."
  ]
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

resumeDownloads 恢复下载 APP开发接入苹果内购IOS内购开发教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

resumeDownloads 恢复下载 APP开发接入苹果内购IOS内购开发教程

请在 setDownloadListener 中接收下载信息

核心代码示例,详情参阅demo

jsBridge.iap.resumeDownloads({
  //下载内容ID组成的数组
  contentIds: [
    "contentId1",
    "contentId2",
    "..."
  ]
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.resumeDownloads({
  //下载内容ID组成的数组
  contentIds: [
    "contentId1",
    "contentId2",
    "..."
  ]
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.resumeDownloads({
  //下载内容ID组成的数组
  contentIds: [
    "contentId1",
    "contentId2",
    "..."
  ]
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

pauseDownloads 暂停下载 APP开发接入苹果内购IOS内购开发教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

pauseDownloads 暂停下载 APP开发接入苹果内购IOS内购开发教程

请在 setDownloadListener 中接收下载信息

核心代码示例,详情参阅demo

jsBridge.iap.pauseDownloads({
  //下载内容ID组成的数组
  contentIds: [
    "contentId1",
    "contentId2",
    "..."
  ]
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.pauseDownloads({
  //下载内容ID组成的数组
  contentIds: [
    "contentId1",
    "contentId2",
    "..."
  ]
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.pauseDownloads({
  //下载内容ID组成的数组
  contentIds: [
    "contentId1",
    "contentId2",
    "..."
  ]
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

startDownloads 开始下载 APP开发实现苹果内购IOS内购开发教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

startDownloads 开始下载 APP开发实现苹果内购IOS内购开发教程

请在 setDownloadListener 中接收下载信息

核心代码示例,详情参阅demo

jsBridge.iap.startDownloads({
  //下载内容ID组成的数组
  contentIds: [
    "contentId1",
    "contentId2",
    "..."
  ]
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.startDownloads({
  //下载内容ID组成的数组
  contentIds: [
    "contentId1",
    "contentId2",
    "..."
  ]
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.startDownloads({
  //下载内容ID组成的数组
  contentIds: [
    "contentId1",
    "contentId2",
    "..."
  ]
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

setDownloadListener 设置下载监听器 APP开发接入苹果内购IOS内购开发教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

setDownloadListener 设置下载监听器 APP开发接入苹果内购IOS内购开发教程

• 调用 startDownloads/pauseDownloads/resumeDownloads/cancelDownloads 方法之前应设置本监听器,所有下载状态变更都会通知到此监听器。

• 系统以数组形式将下载信息传递给回调参数 downloads

• 如果多次设置监听器,只有最后一个才会收到通知。

核心代码示例,详情参阅demo

jsBridge.iap.setDownloadListener(function(succ, downloads) {
  if (succ) {
    alert(JSON.stringify(downloads));
  } else {
    alert("操作失败\n" + JSON.stringify(downloads));
  }
});
alert("已设置监听器");

/**
downloads 下载信息数组
[{    
  state:         //下载状态,详见setTransanctionListener的下载状态常量说明,数字类型
  transactionId: //下载内容所属交易id,字符串类型
  contentId:     //下载内容id,字符串类型
  progress:      //下载进度,取值范围0~1,数字类型
  contentLength: //文件内容大小,数字类型
  timeRemaining: //下载剩余时间,-1时表示未知,数字类型
  contentVersion://下载内容的版本,字符串类型
  contentURL:    //下载成功后文件路径,字符串类型
  errorCode:     //下载失败时的错误码,数字类型
  errorMsg:      //下载失败时的错误描述,字符串类型
}]

**/

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.setDownloadListener(function(succ, downloads) {
  if (succ) {
    alert(JSON.stringify(downloads));
  } else {
    alert("操作失败\n" + JSON.stringify(downloads));
  }
});
alert("已设置监听器");

/**
downloads 下载信息数组
[{    
  state:         //下载状态,详见setTransanctionListener的下载状态常量说明,数字类型
  transactionId: //下载内容所属交易id,字符串类型
  contentId:     //下载内容id,字符串类型
  progress:      //下载进度,取值范围0~1,数字类型
  contentLength: //文件内容大小,数字类型
  timeRemaining: //下载剩余时间,-1时表示未知,数字类型
  contentVersion://下载内容的版本,字符串类型
  contentURL:    //下载成功后文件路径,字符串类型
  errorCode:     //下载失败时的错误码,数字类型
  errorMsg:      //下载失败时的错误描述,字符串类型
}]

**/

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.setDownloadListener(function(succ, downloads) {
  if (succ) {
    alert(JSON.stringify(downloads));
  } else {
    alert("操作失败\n" + JSON.stringify(downloads));
  }
});
alert("已设置监听器");

/**
downloads 下载信息数组
[{    
  state:         //下载状态,详见setTransanctionListener的下载状态常量说明,数字类型
  transactionId: //下载内容所属交易id,字符串类型
  contentId:     //下载内容id,字符串类型
  progress:      //下载进度,取值范围0~1,数字类型
  contentLength: //文件内容大小,数字类型
  timeRemaining: //下载剩余时间,-1时表示未知,数字类型
  contentVersion://下载内容的版本,字符串类型
  contentURL:    //下载成功后文件路径,字符串类型
  errorCode:     //下载失败时的错误码,数字类型
  errorMsg:      //下载失败时的错误描述,字符串类型
}]

**/

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

finishTransaction 完成指定交易 APP开发接入苹果内购IOS内购开发教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

finishTransaction 完成指定交易 APP开发接入苹果内购IOS内购开发教程

• 在完成购买并提供给用户相关功能后应该完成此次交易;

• finishTransaction 成功后,此交易将从 UnfinishedTransactions 队列中移除;

• 请在 setTransanctionListener 中接收交易数据;

核心代码示例,详情参阅demo

jsBridge.iap.finishTransaction({
  //交易id
  transactionId: "3A266867-8275-4299-9BEF-FF7A8A207D21"
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.finishTransaction({
  //交易id
  transactionId: "3A266867-8275-4299-9BEF-FF7A8A207D21"
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.finishTransaction({
  //交易id
  transactionId: "3A266867-8275-4299-9BEF-FF7A8A207D21"
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

restoreTransactions 恢复用户以前购买过的所有商品交易 APP开发实现苹果内购IOS内购开发教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

restoreTransactions 恢复用户以前购买过的所有商品交易 APP开发实现苹果内购IOS内购开发教程

请在 setTransanctionListener 中接收交易数据

核心代码示例,详情参阅demo

jsBridge.iap.restoreTransactions();

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.restoreTransactions();

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.restoreTransactions();

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

purchase 购买产品 APP开发接入苹果内购IOS内购开发教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

purchase 购买产品 APP开发接入苹果内购IOS内购开发教程

请在 setTransanctionListener 中接收交易数据

核心代码示例,详情参阅demo

jsBridge.iap.purchase({
  //你在 https://appstoreconnect.apple.com/ 创建的产品ID
  productId : "com.yidiantongqa.app.vip60",
  //可选,购买数量,不小于1的整数,默认1
  quantity  : 1,
  //可选,用户信息,交易回调里面原样返回,默认空
  applicationUsername: "myString"
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.purchase({
  //你在 https://appstoreconnect.apple.com/ 创建的产品ID
  productId : "com.yidiantongqa.app.vip60",
  //可选,购买数量,不小于1的整数,默认1
  quantity  : 1,
  //可选,用户信息,交易回调里面原样返回,默认空
  applicationUsername: "myString"
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.purchase({
  //你在 https://appstoreconnect.apple.com/ 创建的产品ID
  productId : "com.yidiantongqa.app.vip60",
  //可选,购买数量,不小于1的整数,默认1
  quantity  : 1,
  //可选,用户信息,交易回调里面原样返回,默认空
  applicationUsername: "myString"
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

getUnfinishedTransactions 获取未完成的交易 APP开发接入苹果内购IOS内购开发教程

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

getUnfinishedTransactions 获取未完成的交易 APP开发接入苹果内购IOS内购开发教程

请在 setTransanctionListener 中接收交易数据

核心代码示例,详情参阅demo

jsBridge.iap.getUnfinishedTransactions();

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.getUnfinishedTransactions();

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.iap.getUnfinishedTransactions();

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->