sdk-mini-game.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. const asdkUrl = "https://h5sdk.szzyqw.com";
  2. let a_params = '';
  3. let interval = '';
  4. let a_gameid = "666666100216";//游戏ID,我方分配
  5. let a_gamekey = "9f9dcda16864e268";//游戏KEY,我方分配
  6. let a_pub = "xiaomiminih5sdk_cnlccxx_001";//游戏PUB,我方分配
  7. let a_appid = "2882303761520395492";
  8. let c_cpid = "";
  9. function asdkRequestPsot(url, data) {
  10. return new Promise((resolve, reject) => {
  11. var xhr = new XMLHttpRequest();
  12. xhr.open('POST', asdkUrl+url);
  13. xhr.setRequestHeader('Accept', 'application/json');
  14. xhr.setRequestHeader('charset', 'UTF-8');
  15. xhr.onreadystatechange = function () {
  16. if (xhr.status === 200) {
  17. // 获取服务器返回的数据后调用文档的发起支付接口
  18. if(xhr.response!=''){
  19. var a_res = JSON.parse(xhr.response);
  20. resolve(a_res)
  21. }
  22. }
  23. else {
  24. let a_res = {'code':-1,'msg':'error'}
  25. resolve(a_res)
  26. }
  27. };
  28. xhr.send(JSON.stringify(data));
  29. });
  30. }
  31. // 初始化
  32. function asdkInit(callback) {
  33. let url = '/mini/datatrans.php?action=mini_init';
  34. let data = {
  35. "a_gameid": a_gameid,
  36. "a_gamekey": a_gamekey,
  37. "a_pub": a_pub,
  38. "a_appid": a_appid,
  39. "c_cpid": c_cpid,
  40. }
  41. asdkRequestPsot(url, data).then(a_res => {
  42. console.log("init:"+JSON.stringify(a_res));
  43. callback(a_res);
  44. })
  45. }
  46. // 登录
  47. function asdkLogin(callback) {
  48. login().then(res => {//每次都重新登录
  49. callback(res)
  50. })
  51. }
  52. function login(){
  53. return new Promise((resolve, reject) => {
  54. if (qg.getSystemInfoSync().platformVersionCode >= 1050) {
  55. qg.login({
  56. success: function(res) {
  57. let url = '/othersdkdatatrans.php?sdkabbr=xiaomiminih5sdk&a_pub='+a_pub+'&a_gameid='+a_gameid+'&a_gamekey='+a_gamekey;
  58. let data = {
  59. "a_gameid": a_gameid,
  60. "a_gamekey": a_gamekey,
  61. "a_pub": a_pub,
  62. "a_appid": a_appid,
  63. "c_cpid": c_cpid,
  64. "account": res.data.appAccountId,
  65. "session": res.data.session
  66. }
  67. asdkRequestPsot(url, data).then(a_res => {
  68. console.log('获取用户信息成功' + JSON.stringify(a_res));
  69. if (a_res.code == 0) {
  70. a_params = {
  71. "a_accountid": a_res.data.account.accountid,
  72. "a_sessionid": a_res.data.account.sessionid,
  73. "a_openid": res.data.appAccountId,
  74. "a_token": res.data.session,
  75. }
  76. }
  77. resolve(a_res)
  78. })
  79. },
  80. fail: function(res){
  81. console.log('获取用户信息失败' + JSON.stringify(res));
  82. let data = {'code':-1,'msg':'获取用户信息失败' + JSON.stringify(res)}
  83. resolve(data)
  84. }
  85. })
  86. }else{
  87. console.log('版本不符合,请更新');
  88. let data = {'code':-1,'msg':'版本不符合,请更新'}
  89. resolve(data)
  90. }
  91. })
  92. }
  93. function asdkSendRole(roleInfo,callback) {
  94. let url = '/datatrans.php?action=mini_uploadinfo';
  95. let data = {
  96. "a_gameid": a_gameid,
  97. "a_gamekey": a_gamekey,
  98. "a_pub": a_pub,
  99. "a_sessionid": a_params.a_sessionid,
  100. "a_accountid": a_params.a_accountid,
  101. "playerid": roleInfo.playerid,
  102. "playername": roleInfo.playername,
  103. "playerlevel": roleInfo.playerlevel,
  104. "serverid": roleInfo.serverid,
  105. "servername": roleInfo.servername
  106. }
  107. asdkRequestPsot(url, data).then(res => {
  108. callback(res)
  109. })
  110. }
  111. // 支付
  112. function asdkPay(payOrder, payCallback) {
  113. //查询支付列表
  114. let url = '/datatrans.php?action=generatepayorder'
  115. let orderInfo = {
  116. "appId": a_appid,
  117. "appAccountId": a_params.a_openid,
  118. "session": a_params.a_token,
  119. "cpOrderId": '',
  120. "cpUserInfo": '',
  121. "displayName": payOrder.productfeecode,
  122. "feeValue":payOrder.paymoney*100,
  123. "sign":'',
  124. }
  125. payOrder.a_gameid = a_gameid;
  126. payOrder.a_gamekey = a_gamekey;
  127. payOrder.a_pub = a_pub;
  128. payOrder.a_sessionid = a_params.a_sessionid;
  129. payOrder.a_accountid = a_params.a_accountid;
  130. payOrder.extdata = JSON.stringify(orderInfo);
  131. asdkRequestPsot(url, payOrder).then(a_res => {
  132. if (a_res.code == 0) {
  133. orderInfo.cpOrderId = a_res.data.extdata1;
  134. orderInfo.cpUserInfo = a_res.data.extdata1;
  135. orderInfo.sign = a_res.data.extdata2;
  136. console.log("支付参数:"+JSON.stringify(orderInfo));
  137. qg.pay({
  138. orderInfo,
  139. success: function(res){
  140. console.log("支付成功")
  141. payCallback(ret)
  142. },
  143. fail: function(res){
  144. console.log("支付失败")
  145. payCallback(ret)
  146. }
  147. });
  148. }else{
  149. console.log("支付失败")
  150. payCallback({'code':-1,'msg':a_res.msg})
  151. }
  152. })
  153. }
  154. qg.asdk = {
  155. asdkInit,
  156. asdkLogin,
  157. asdkSendRole,
  158. asdkPay,
  159. }