MiddlePay.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. cc.Class({
  2. ctor () {
  3. this._orderDataMap = {};
  4. },
  5. /**
  6. * 收到JNI发上来的事件
  7. *
  8. * @author Pyden
  9. * @date 2020-03-11
  10. * @param {Object} eventData
  11. */
  12. handleEvent (eventData) {
  13. /* eventData参数:
  14. * @param {String} sdkName
  15. * @param {String} eventKey
  16. * @param {Integer} code
  17. * @param {String} errorMsg
  18. * @param {Object} data
  19. */
  20. /*
  21. 支付回调事件,eventKey如下:
  22. pay_result // 支付完成回调
  23. eventData.data.orderId // 同pay请求时的参数
  24. */
  25. let eventKey = eventData.eventKey;
  26. switch (eventKey) {
  27. case 'pay_result': {
  28. let data = eventData.data;
  29. let orderId = data ? data.orderId : '';
  30. let orderData = this.getOrderData(orderId);
  31. if (orderData) {
  32. eventData.data = orderData;
  33. }
  34. cc.game.emit('e_middle_pay_result', eventData);
  35. break;
  36. }
  37. default:
  38. break;
  39. }
  40. },
  41. /**
  42. * 获取支付模块的配置信息
  43. *
  44. * @author Pyden
  45. * @date 2020-03-23
  46. * @returns {Object}
  47. * config.list 支付类型信息列表
  48. */
  49. getConfig () {
  50. if (!this._config) {
  51. let gameConfig = G.MiddleMgr.getGameConfig();
  52. if (gameConfig && gameConfig.pay) {
  53. this._config = gameConfig.pay;
  54. }
  55. }
  56. return this._config;
  57. },
  58. /**
  59. * 获取支付类型信息列表
  60. *
  61. * @author Pyden
  62. * @date 2020-03-11
  63. * @returns {Array}
  64. * name
  65. * sdkName
  66. * payType
  67. */
  68. getPayTypeInfoList () {
  69. let config = this.getConfig() || {};
  70. return config.list;
  71. },
  72. /**
  73. * 缓存订单信息
  74. *
  75. * @author Pyden
  76. * @date 2020-03-23
  77. * @param {*} orderId
  78. * @param {*} orderData
  79. */
  80. addOrderData (orderId, orderData) {
  81. this._orderDataMap[orderId] = orderData;
  82. },
  83. /**
  84. * 获取订单信息
  85. *
  86. * @author Pyden
  87. * @date 2020-03-23
  88. * @param {*} orderId
  89. */
  90. getOrderData (orderId) {
  91. return this._orderDataMap[orderId];
  92. },
  93. /**
  94. * 支付 pay_pay
  95. *
  96. * @author Pyden
  97. * @date 2020-03-11
  98. * @param {String} sdkName
  99. * @param {Integer} payType
  100. * @param {Integer} uid
  101. * @param {Integer} gid
  102. * @param {Integer} jfid 我们游戏的计费点id,不是渠道的计费点id。另外,同一个 jfid 会给不同的商品id使用。
  103. * @param {Integer} price
  104. * @param {String} goodsName
  105. * @param {String} goodsDesc
  106. * @param {String} orderId
  107. * @param {String} payCode 第三方H5游戏传入的计费点 LegendMgr
  108. * @returns {Boolean} 返回值表示是否调起支付成功
  109. */
  110. pay (sdkName, payType, uid, gid, jfid, price, goodsName, goodsDesc, orderId, payCode) {
  111. return false;
  112. },
  113. /**
  114. * 生成订单号
  115. *
  116. * @author Pyden
  117. * @date 2020-03-11
  118. * @param {String} sdkName
  119. * @param {Integer} payType
  120. * @param {Integer} uid
  121. * @param {Integer} gid
  122. * @param {Integer} channelId
  123. * @returns {String}
  124. */
  125. newOrderId (sdkName, payType, uid, gid, channelId) {
  126. return '';
  127. },
  128. /**
  129. * 设置商品计费点id列表(iOS用于同步商品信息) 未使用 pay_setGoodsJfidListString
  130. *
  131. * @author Pyden
  132. * @date 2020-03-11
  133. * @param {Array} goodsJfidList
  134. */
  135. setGoodsJfidList (goodsJfidList) {
  136. }
  137. });