1、开发测试
相关软件配置
天猫精灵容器版本 推荐2.1.191.0版本及以上(检查容器版本方法:
adb shell dumpsys package com.alibaba.ailabs.genie.webapps | grep versionName
打印容器版本, 若容器版本过低,请联系天猫精灵方为您单独推送测试容器)打开方式
adb shell am start -d “webapp://com.alibaba.ailabs.genie.webapps/h5/game?url=替换为你的html5网址\&appId=100010000001”
- 参数说明
- url: h5网址,传入编码后的url即可
- appId: 天猫精灵为h5分配的应用id,此处仅为测试使用
2、小游戏JSAPI
页面引入
- 只在天猫精灵上使用
使用示例
<head>
<script type="text/javascript" src="https://appx/genie.game.min.js"></script>
...
</head>
- 在天猫精灵上使用,同时也在非天猫精灵上使用
<head>
<!-- 如该 H5 页面需要同时在非天猫精灵设备内使用,为避免该请求404,可参考以下写法 -->
<!-- 请尽量在 html 头部执行以下脚本 -->
<script>
if (navigator.userAgent.indexOf('TmallGenie') > -1) {
document.writeln('<script src="https://appx/genie.game.min.js"' + '>' + '<' + '/' + 'script>');
}
</script>
</head>
二维码支付
- API: my.tg.qrcodePay
- 功能:二维码支付,调起收银台付款
- 入参:param:{ //参数说明如下 } | 属性 | 类型 | 必填 | 说明 | | —- | —- | —- | —- | | sellerId | Number | 是 | 商户的淘宝id | | content | String | 是 | 支付内容(内容的字段说明下表说明) | | sign | String | 是 | 对content 内容签名,商户的RSA私钥对内容的签名;平台会用商户上传的公钥验签 |
content支付内容字段说明
属性 | 类型 | 必填 | 说明 |
---|---|---|---|
amount | Number | 是 | 订单金额 (单位:元) |
appId | String | 是 | 商户入职时分配的appid |
outItemId | String | 否 | 商户商品id |
outItemName | String | 否 | 商户售卖的产品名称 |
outOrderId | String | 是 | 商户订单号 |
payExpireTime | String | 否 | 订单的超时时间 |
sellerId | Number | 是 | 商户的淘宝id |
秘钥说明
参数名 | 获取方式 |
---|---|
RSA私钥 | 商户自我管理 |
RSA公钥 | 商户入驻时,在开发设置里提供,必填 |
sign加签说明(服务端)
通过支付宝SDK提供的工具类进行加签验签操作。 电魂侧可以在maven中央仓库下载到,版本选择3.7.80.ALL以上即可
https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java
<dependency>
<groupId>alipay-sdk-java</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>3.7.80.ALL</version>
</dependency>
content: 需要加签的业务参数,json字符串
加签:
String sign = AlipaySignature.rsaSign(content, sysPriKey, "UTF-8", "RSA");
验签:
boolean signCheck = AlipaySignature.rsaCheck(content, sign2, sysPubKey, "UTF-8", "RSA");
- response:支付结果回调 | 回调方法 | 类型 | 必填 | 说明 | | —- | —- | —- | —- | | success | Function | 是 | 支付成功的回调 | | fail | Function | 是 | 支付失败的回调 |
支付回调说明
{"code":"", "msg":""} //code值0代表成功, msg为对应code的描述
支付样式:
创建订单:
支付宝支付:
- 使用示例:
//二维码支付
function qrcodePay() {
my.tg.qrcodePay({
param: {
sellerId: '3919645743',
content: '\{\"amount\":1,\"appId\":\"2019121169798623\",\"outItemId\":\"1000001\",\"outItemName\":\"豆腐\",\"outOrderId\":\"eebfce93-a760-415f-a6b5-4f0c9a1f3134\",\"payExpireTime\":1578908465797,\"sellerId\":3919645743}',
sign: 'lF9t3uBB3ZOIbvoFqIibcOgXI7SS8PHfm0ZKKb1DCXhRnvfmYTQwKHisUQh9ieg3u891ANPMEsPD3haySqzyC2+MJQJNutRduUOxFHsRTXuErKmoci1XtQJwez5Wh7A6CMBDYTykIWdZorP3zwf2ZtgcddasUj9kWq9eB1VkfgE='
},
success: (res) => {
alert("支付回调成功:" +JSON.stringify(res));
},
fail: (res) => {
alert("支付回调失败:" +JSON.stringify(res));
}
});
}
3、服务端HTTP支付结果回调
- 回调接口是天猫精灵作为发起方,客户方作为提供方 | 说明 | 测试 | 生产 | 产生方式 | | —- | —- | —- | —- | | 请求方式 | POST | POST | http协议自带 | | RSA公钥 | | | 由天猫精灵提供给客户方,用于通知结果验签 |
- 业务请求参数 | 参数名 | 中文名 | 字段类型 | 产生方式 | 是否毕传 | | —- | —- | —- | —- | —- | | content | 业务参数 | String | 将业务参数转成json字符串得到 | 是 | | sign | 签名 | String | 将业务参数转成json字符串,使用RSA私钥加密得到 | 是 |
- 业务参数 | 参数名 | 中文名 | 字段类型 | 是否毕传 | | —- | —- | —- | —- | | sellerId | 卖家id | Long | 是 | | appId | 商户入驻时分配的appId | String | 是 | | outOrderId | 商户的订单id | String | 是 |
- 响应参数
无, 当前认为 httpstatus = 200 表示通知成功