sdk-mini-game.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. const cfg = require("./sdk-mini-conf")
  2. const asdkUrl = "https://h5sdk.szzyqw.com"
  3. let a_params = ''
  4. let interval = ''
  5. //bool
  6. if (!cfg.a_gameid || !cfg.a_gamekey || !cfg.a_pub || !cfg.a_appid || !cfg.c_cpid) {
  7. console.error("缺少参数")
  8. }
  9. //http
  10. function asdkRequest(url, data) {
  11. return new Promise((resolve, reject) => {
  12. qg.request({
  13. url: asdkUrl + url,
  14. method: "POST",
  15. header: {
  16. 'content-type': "application/x-www-form-urlencoded"
  17. },
  18. data,
  19. success: function (a_res) {
  20. resolve(a_res.data)
  21. },
  22. fail: function (a_res) {
  23. resolve(a_res.data)
  24. }
  25. })
  26. })
  27. }
  28. // 初始化
  29. function asdkInit(callback) {
  30. let url = '/mini/datatrans.php?action=mini_init'
  31. let data = {
  32. "a_gameid": cfg.a_gameid,
  33. "a_gamekey": cfg.a_gamekey,
  34. "a_pub": cfg.a_pub,
  35. "a_appid": cfg.a_appid,
  36. "c_cpid": cfg.c_cpid,
  37. }
  38. asdkRequest(url, data).then(a_res => {
  39. console.log('初始化返回:'+JSON.stringify(a_res))
  40. callback(a_res)
  41. })
  42. }
  43. // 登录
  44. function asdkLogin(callback) {
  45. login().then(res => {//每次都重新登录
  46. callback(res)
  47. })
  48. }
  49. function login(){
  50. return new Promise((resolve, reject) => {
  51. if (qg.getSystemInfoSync().platformVersionCode >= 1063) {
  52. qg.login().then((res) => {
  53. if (res.data.token) {
  54. console.log('渠道返回当前用户信息: ' + JSON.stringify(res.data));
  55. let url = '/othersdkdatatrans.php?sdkabbr=vivominih5sdk&a_pub='+cfg.a_pub+'&a_gameid='+cfg.a_gameid+'&a_gamekey='+cfg.a_gamekey
  56. let data = {
  57. "a_gameid": cfg.a_gameid,
  58. "a_gamekey": cfg.a_gamekey,
  59. "a_pub": cfg.a_pub,
  60. "a_appid": cfg.a_appid,
  61. "c_cpid": cfg.c_cpid,
  62. "token": res.data.token
  63. }
  64. asdkRequest(url, data).then(a_res => {
  65. if (a_res.code == 0) {
  66. a_params = {
  67. "a_accountid": a_res.data.account.accountid,
  68. "a_sessionid": a_res.data.account.sessionid,
  69. "a_openid": a_res.data.account.extdata1,
  70. }
  71. console.log("login data:"+JSON.stringify(a_params))
  72. }
  73. resolve(a_res)
  74. })
  75. }
  76. }, (err) => {
  77. console.log('获取用户信息失败' + JSON.stringify(err));
  78. let data = {'code':-1,'msg':'获取用户信息失败' + JSON.stringify(err)}
  79. resolve(data)
  80. })
  81. }else{
  82. console.log('版本不符合,请更新');
  83. let data = {'code':-1,'msg':'版本不符合,请更新'}
  84. resolve(data)
  85. }
  86. })
  87. }
  88. // 上报角色信息
  89. function asdkSendRole(roleInfo, callback) {
  90. let url = '/datatrans.php?action=mini_uploadinfo'
  91. let data = {
  92. "a_gameid": cfg.a_gameid,
  93. "a_gamekey": cfg.a_gamekey,
  94. "a_pub": cfg.a_pub,
  95. "a_sessionid": a_params.a_sessionid,
  96. "a_accountid": a_params.a_accountid,
  97. "playerid": roleInfo.playerid,
  98. "playername": roleInfo.playername,
  99. "playerlevel": roleInfo.playerlevel,
  100. "serverid": roleInfo.serverid,
  101. "servername": roleInfo.servername
  102. }
  103. asdkRequest(url, data).then(res => {
  104. callback(res)
  105. })
  106. }
  107. // 支付
  108. function asdkPay(payOrder, payCallback) {
  109. //查询支付列表
  110. let url = '/datatrans.php?action=generatepayorder'
  111. let data = {
  112. "callbackurl": payOrder.callbackurl,
  113. "paymoney": payOrder.paymoney*100,
  114. "custominfo": payOrder.custominfo,
  115. "customorderid": payOrder.customorderid,
  116. "productdesc": payOrder.productdesc,
  117. "productfeecode": payOrder.productfeecode,
  118. "appid":cfg.a_appid,
  119. "openid":a_params.a_openid
  120. }
  121. payOrder.a_gameid = cfg.a_gameid;
  122. payOrder.a_gamekey = cfg.a_gamekey;
  123. payOrder.a_pub = cfg.a_pub;
  124. payOrder.a_sessionid = a_params.a_sessionid;
  125. payOrder.a_accountid = a_params.a_accountid;
  126. payOrder.extdata = JSON.stringify(data);
  127. asdkRequest(url, payOrder).then(a_res => {
  128. if (a_res.code == 0) {
  129. console.log("pay info:"+JSON.stringify(a_res))
  130. let params = {
  131. "appId":cfg.a_appid,
  132. "cpOrderNumber":a_res.data.orderid,
  133. "productName":payOrder.productdesc,
  134. "productDesc":payOrder.productdesc,
  135. "orderAmount":payOrder.paymoney*100,
  136. "notifyUrl":a_res.data.extdata1,
  137. "extInfo":a_res.data.orderid,
  138. "vivoSignature":a_res.data.extdata2,
  139. }
  140. qg.pay({
  141. orderInfo: JSON.stringify(params),
  142. success: function(ret) {
  143. console.log("支付成功")
  144. payCallback(ret)
  145. },
  146. fail: function (err) {
  147. console.log("支付失败")
  148. payCallback(ret)
  149. },
  150. cancel: function (ret) {
  151. console.log("支付取消")
  152. payCallback(ret)
  153. },
  154. complete: function(){
  155. console.log("支付完成")
  156. payCallback(ret)
  157. }
  158. })
  159. }else{
  160. console.log("支付失败")
  161. payCallback({'code':-1,'msg':a_res.msg})
  162. }
  163. })
  164. }
  165. qg.asdk = {
  166. asdkInit,
  167. asdkLogin,
  168. asdkSendRole,
  169. asdkPay,
  170. asdkRequest,
  171. }