DybSdk.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. var t = require;
  2. var e = module;
  3. var i = exports;
  4. var a =
  5. (this && this.__awaiter) ||
  6. function (t, n, r, l) {
  7. return new (r = r || Promise)(function (i, e) {
  8. function s(t) {
  9. try {
  10. a(l.next(t));
  11. } catch (t) {
  12. e(t);
  13. }
  14. }
  15. function o(t) {
  16. try {
  17. a(l.throw(t));
  18. } catch (t) {
  19. e(t);
  20. }
  21. }
  22. function a(t) {
  23. var e;
  24. t.done
  25. ? i(t.value)
  26. : ((e = t.value) instanceof r
  27. ? e
  28. : new r(function (t) {
  29. t(e);
  30. })
  31. ).then(s, o);
  32. }
  33. a((l = l.apply(t, n || [])).next());
  34. });
  35. };
  36. Object.defineProperty(i, "__esModule", {value: !0}), (i.DybSdk = void 0);
  37. const n = t("App");
  38. i.DybSdk = class {
  39. constructor() {
  40. (this.dybSdk = window.dyb),
  41. (this.receivedOrders = {}),
  42. (this.localOrder = {}),
  43. (this.localSaveKey = "DybSdk"),
  44. this.getDybUserInfo();
  45. var t = cc.sys.localStorage.getItem(this.localSaveKey);
  46. t && (this.localOrder = JSON.parse(t));
  47. }
  48. getDybUserInfo() {
  49. return new Promise(e => {
  50. this.openId && e(this.openId),
  51. this.dybSdk.getDybUserInfo(t => {
  52. (this.openId = t.user.openid), e(this.openId);
  53. });
  54. });
  55. }
  56. createRole() {
  57. var t = {role_name: "" + n.default.GameDataMsr.playerInfo.id, server_id: 1, server_name: "服务器"};
  58. this.dybSdk.createRole(t);
  59. }
  60. gameLevel(t, e) {
  61. this.dybSdk.gameLevel(t, e);
  62. }
  63. submitOrder(t) {
  64. return new Promise(e => {
  65. this.dybSdk.submitOrder(t, t => {
  66. console.log("生成订单:" + JSON.stringify(t), t.code), e(1 === t.code);
  67. });
  68. });
  69. }
  70. buy(i) {
  71. return a(this, void 0, void 0, function* () {
  72. if (
  73. (this.localOrder[i.payId] &&
  74. (this.receivedOrders[i.payId] || (yield this.getNotReceivedOrder(i.payId, 0, 0))),
  75. this.deletAbnomalOrder(i.payId),
  76. this.receivedOrders[i.payId] && (yield this.consumeOrder(i.payId)))
  77. )
  78. return !0;
  79. const t = yield this.createOrder(i);
  80. if (t) {
  81. var e = {
  82. pay_amount: i.cost,
  83. extra_info: "",
  84. goods_name: i.goods_name,
  85. redirect_uri: t.notify_moyang_midas,
  86. role_name: "" + n.default.GameDataMsr.playerInfo.id,
  87. server_name: "无",
  88. order_sn: t.pay_order_id
  89. };
  90. if (yield this.submitOrder(e)) {
  91. if (
  92. (this.addAbnomalOrder(i.payId, e.order_sn),
  93. yield n.default.TimerManager.sleep(3e3),
  94. yield this.getNotReceivedOrder(i.payId),
  95. this.receivedOrders[i.payId])
  96. ) {
  97. const t = yield this.consumeOrder(i.payId);
  98. return this.deletAbnomalOrder(i.payId), t;
  99. }
  100. return !1;
  101. }
  102. }
  103. return !1;
  104. });
  105. }
  106. addAbnomalOrder(t, e) {
  107. (this.localOrder[t] = e), cc.sys.localStorage.setItem(this.localSaveKey, JSON.stringify(this.localOrder));
  108. }
  109. deletAbnomalOrder(t) {
  110. this.localOrder[t] &&
  111. ((this.localOrder[t] = null),
  112. cc.sys.localStorage.setItem(this.localSaveKey, JSON.stringify(this.localOrder)));
  113. }
  114. createOrder(e) {
  115. return a(this, void 0, void 0, function* () {
  116. var t = yield n.default.Http.post(
  117. n.default.ConfigManager.gameConf.serverInfos.interface + "/api/purchase/create",
  118. {
  119. api_token: n.default.GameDataMsr.playerInfo.token,
  120. goods: e.payId,
  121. count: 1,
  122. amount: e.cost,
  123. desc: e.goods_name,
  124. body: e.desc
  125. },
  126. 3,
  127. 3e3
  128. ),
  129. t = JSON.parse(t);
  130. return t && 0 === t.code ? t.data : null;
  131. });
  132. }
  133. getNotReceivedOrder(e = null, i = 5, s = 2e3) {
  134. return a(this, void 0, void 0, function* () {
  135. for (;;) {
  136. var t = yield n.default.Http.requestAsync(
  137. n.default.ConfigManager.gameConf.serverInfos.interface + "/api/purchase/paid_orders",
  138. {api_token: n.default.GameDataMsr.playerInfo.token},
  139. "GET",
  140. s
  141. );
  142. if (t) {
  143. const i = JSON.parse(t);
  144. if (i && 0 == i.code && i.data && i.data.length) {
  145. this.receivedOrders = {};
  146. for (const e of i.data) this.receivedOrders[e.goods] = e;
  147. if (!e) return;
  148. if (this.receivedOrders[e]) return;
  149. }
  150. }
  151. if (i <= 0) return null;
  152. i--, yield n.default.TimerManager.sleep(s);
  153. }
  154. });
  155. }
  156. consumeOrder(i, s = 5, o = 2e3) {
  157. return a(this, void 0, void 0, function* () {
  158. var t = this.receivedOrders[i];
  159. if (!t) return !1;
  160. for (;;) {
  161. var e = yield n.default.Http.requestAsync(
  162. n.default.ConfigManager.gameConf.serverInfos.interface + "/api/purchase/confirm/" + t.id,
  163. {api_token: n.default.GameDataMsr.playerInfo.token, oid: t.id},
  164. "GET",
  165. o
  166. );
  167. if (e) {
  168. const s = JSON.parse(e);
  169. if (s && 0 === s.code) return !(this.receivedOrders[i] = null);
  170. }
  171. if (s <= 0) return null;
  172. s--, yield n.default.TimerManager.sleep(o);
  173. }
  174. });
  175. }
  176. dot(t) {
  177. this.dybSdk.dot(t);
  178. }
  179. subscribeMsg(t) {
  180. this.dybSdk.subscribeMsg(t);
  181. }
  182. };