Commit 02fde78d1df48ccb6b3af5a04d732367dbcbb24d

Authored by 宋庆平
1 parent 53858931

X

sdk/shareTools.ts
@@ -67,8 +67,3 @@ export class ShareTools { @@ -67,8 +67,3 @@ export class ShareTools {
67 } 67 }
68 68
69 } 69 }
70 -  
71 -  
72 -  
73 -export enum ShareKey {  
74 -}  
wxsdk/base/SDKConst.ts
@@ -24,8 +24,8 @@ export const GAMEDATA = { @@ -24,8 +24,8 @@ export const GAMEDATA = {
24 typ: 1,//分享类型 写死1 24 typ: 1,//分享类型 写死1
25 videoid: '',//默认的视频广告id 填空就行 25 videoid: '',//默认的视频广告id 填空就行
26 }, 26 },
27 - MidasPay: { // 米大师虚拟支付配置 *找运营提供  
28 - OfferId: "9999999999", // 在米大师申请的应用id *找运营提供 27 + MidasPay: { // 米大师虚拟支付配置
  28 + OfferId: "xxxx", // 在米大师申请的应用id
29 ZoneId: "1", // 分区ID,默认:1 29 ZoneId: "1", // 分区ID,默认:1
30 Mode: "game", // 默认:game 30 Mode: "game", // 默认:game
31 CurrencyType: "CNY", // 默认:CNY 31 CurrencyType: "CNY", // 默认:CNY
@@ -33,8 +33,9 @@ export const GAMEDATA = { @@ -33,8 +33,9 @@ export const GAMEDATA = {
33 } 33 }
34 } 34 }
35 35
  36 +
36 // sdk版本 37 // sdk版本
37 -export const SDKVersion = 'v1.0.11'; 38 +export const SDKVersion = 'v1.0.12';
38 // 是否打印 39 // 是否打印
39 export const __LOG__ = false; 40 export const __LOG__ = false;
40 // 是否mock 41 // 是否mock
@@ -110,11 +111,13 @@ export const HostKeys = { @@ -110,11 +111,13 @@ export const HostKeys = {
110 behavior: 'api/douyin/behavior', //抖音投放关键行为 111 behavior: 'api/douyin/behavior', //抖音投放关键行为
111 attribute: 'api/member/attribute/set', //修改用户属性 112 attribute: 'api/member/attribute/set', //修改用户属性
112 wxencrypted: 'api/wx/encrypted', 113 wxencrypted: 'api/wx/encrypted',
  114 +
113 //订单 115 //订单
114 - orderReport: 'api/order/v2/mimas/new', //订单信息上报 116 + orderReport: 'api/order/v2/mimas/new', //wx订单信息上报
115 orderQuery: 'api/order/query', //订单信息查询 117 orderQuery: 'api/order/query', //订单信息查询
116 preorder: 'api/order/v2/preorder', //获取支付方式 118 preorder: 'api/order/v2/preorder', //获取支付方式
117 bytedanceOrderReport: 'api/order/v2/bytedance', //字节订单信息上报 119 bytedanceOrderReport: 'api/order/v2/bytedance', //字节订单信息上报
  120 + qqOrderReport: 'api/order/v2/qq', //qq订单信息上报
118 // 121 //
119 goodslist: 'api/v2/goodslist', //商品列表 122 goodslist: 'api/v2/goodslist', //商品列表
120 }; 123 };
wxsdk/http/SDKApi.ts
@@ -78,6 +78,7 @@ export class SDKApi { @@ -78,6 +78,7 @@ export class SDKApi {
78 // OrderApi 78 // OrderApi
79 public static pay = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.orderReport, ...args); 79 public static pay = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.orderReport, ...args);
80 public static bytedanceOrderReport = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.bytedanceOrderReport, ...args); 80 public static bytedanceOrderReport = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.bytedanceOrderReport, ...args);
  81 + public static qqOrderReport = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.qqOrderReport, ...args);
81 public static orderQuery = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.orderQuery, ...args); 82 public static orderQuery = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.orderQuery, ...args);
82 public static preorder = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.preorder, ...args); 83 public static preorder = (...args) => SDKHttp.httpPost(DataService.I.OrderApi, HostKeys.preorder, ...args);
83 84
wxsdk/qq/QQPay.ts 0 → 100644
@@ -0,0 +1,165 @@ @@ -0,0 +1,165 @@
  1 +import { GAMEDATA } from '../base/SDKConst';
  2 +import { EnvCode } from '../base/SDKEnum';
  3 +import { SDKApi } from '../http/SDKApi';
  4 +import DataService from '../service/DataService';
  5 +import WxSystem from '../wx/WxSystem';
  6 +
  7 +export default class QQPay {
  8 + /**
  9 + * 发起支付
  10 + */
  11 + pay(params: { payid: string, goodid: string, money: number; orderid: string }, opts: any = {}): Promise<any> {
  12 + return new Promise((resolve, reject) => {
  13 + let { Mode, OfferId, ZoneId, CurrencyType, Platform } = GAMEDATA.MidasPay;
  14 + // 环境配置,0:米大师正式环境 1:米大师沙箱环境
  15 + let env = DataService.I.EnvEnum === EnvCode.Prod ? 0 : 1;
  16 + // 平台类型,android or ios,config.js有配置走配置,否则判断系统id
  17 + let platform = DataService.I.Platform;
  18 + let pms = {
  19 + mode: Mode,
  20 + env,
  21 + platform,
  22 + offerId: OfferId,
  23 + currencyType: CurrencyType,
  24 + buyQuantity: params.money / 10,
  25 + zoneId: ZoneId
  26 + };
  27 + let extend = "";
  28 + for (let key in opts) {
  29 + extend += (`${key}=${opts[key]}&`)
  30 + }
  31 + extend = extend.substring(0, extend.length - 1);
  32 + extend = encodeURIComponent(extend);
  33 +
  34 + let payParams = {
  35 + ...this.buildParams(),
  36 + extend,
  37 + orderid: params.orderid,
  38 + // payid: params.payid,
  39 + goodid: params.goodid,
  40 + money: params.money,
  41 + platform
  42 + };
  43 + console.log("payParams", payParams);
  44 + SDKApi.qqOrderReport(payParams).then(res => {
  45 + console.log("res", res);
  46 + if (!res.code) {
  47 + let { prepayId,starCurrency,setEnv } = res.data;
  48 + qq.requestMidasPayment({
  49 + prepayId,
  50 + starCurrency,
  51 + setEnv,
  52 + success(res) {
  53 + // console.log("调用函数成功", res);
  54 + resolve({ code: 0, msg: '支付成功!' })
  55 + },
  56 + fail(err) {
  57 + // console.log("调用函数失败", res);
  58 + resolve({ code: err.errCode, msg: '支付失败' });
  59 + },
  60 + complete(res) {
  61 + console.log("调用完成", res);
  62 + },
  63 + })
  64 + } else {
  65 + reject(res);
  66 + }
  67 + })
  68 + });
  69 + }
  70 +
  71 + private async handlePaySuccess(data: { payid: string, goodid: string, money: number; orderid: string, platform: string }, opts: any, resolve: any, reject: any, t = 1000) {
  72 + let extend = "";
  73 + for (let key in opts) {
  74 + extend += (`${key}=${opts[key]}&`)
  75 + }
  76 + extend = extend.substring(0, extend.length - 1);
  77 + extend = encodeURIComponent(extend);
  78 + let params = {
  79 + ...this.buildParams(),
  80 + extend,
  81 + midasenv: DataService.I.EnvEnum === EnvCode.Prod ? 0 : 1,
  82 + orderid: data.orderid,
  83 + payid: data.payid, goodid: data.goodid,
  84 + type: 1,
  85 + money: data.money,
  86 + platform: data.platform
  87 + };
  88 + var that = this;
  89 + SDKApi.qqOrderReport(params)
  90 + .then(res => {
  91 + if (!res.code) {
  92 + resolve(res);
  93 + } else {
  94 + t = Math.min(t * 2, 60000)
  95 + // console.error("上报失败,重新上报", t)
  96 + setTimeout(() => {
  97 + that.handlePaySuccess(data, opts, resolve, reject, t)
  98 + }, t);
  99 + }
  100 + })
  101 + }
  102 +
  103 + private handlePayError(data: { payid: string, goodid: string, money: number; orderid: string, platform: string }, opts, err: any, reject: any) {
  104 + console.log("支付失败", JSON.stringify(err));
  105 + let type = 2;
  106 + if (err.errCode + '' == '1') {
  107 + type = 3;
  108 + }
  109 + let extend = "";
  110 + for (let key in opts) {
  111 + extend += (`${key}=${opts[key]}&`)
  112 + }
  113 + extend = extend.substring(0, extend.length - 1);
  114 + extend = encodeURIComponent(extend);
  115 + let params = {
  116 + ...this.buildParams(),
  117 + extend,
  118 + midasenv: DataService.I.EnvEnum === EnvCode.Prod ? 0 : 1,
  119 + orderid: data.orderid,
  120 + payid: data.payid, goodid: data.goodid,
  121 + type,
  122 + money: data.money,
  123 + platform: data.platform
  124 + };
  125 + SDKApi.qqOrderReport(params)
  126 + reject(err);
  127 + }
  128 +
  129 + /**
  130 + * 构建支付公用参数
  131 + */
  132 + private buildParams() {
  133 + let gameid = GAMEDATA.game_id;
  134 + let channel = DataService.I.ChannelId;
  135 + let openid = DataService.I.OpenId;
  136 + let brand = WxSystem.I.brand;
  137 + let model = WxSystem.I.model;
  138 + let version = WxSystem.I.version;
  139 + let system = WxSystem.I.system;
  140 + let sdkversion = WxSystem.I.SDKVersion;
  141 + let scene = DataService.I.Scene + '';
  142 + let uid = DataService.I.UserId;
  143 + let token = DataService.I.Token;
  144 + let env = DataService.I.EnvEnum === 1 ? 'pre' : 'prod';
  145 + return {
  146 + gameid,
  147 + openid,
  148 + channel,
  149 + brand,
  150 + model,
  151 + version,
  152 + system,
  153 + sdkversion,
  154 + scene,
  155 + uid,
  156 + token,
  157 + env
  158 + };
  159 + }
  160 +
  161 + private static _instance: QQPay;
  162 + static get I(): QQPay {
  163 + return this._instance || (this._instance = new QQPay);
  164 + }
  165 +}
0 \ No newline at end of file 166 \ No newline at end of file
wxsdk/service/GameService.ts
@@ -6,6 +6,7 @@ import WxApi from &quot;../wx/WxApi&quot;; @@ -6,6 +6,7 @@ import WxApi from &quot;../wx/WxApi&quot;;
6 import WxPay from "../wx/WxPay"; 6 import WxPay from "../wx/WxPay";
7 import WxSystem from "../wx/WxSystem"; 7 import WxSystem from "../wx/WxSystem";
8 import DouyinPay from "../douyin/DouyinPay"; 8 import DouyinPay from "../douyin/DouyinPay";
  9 +import QQPay from "../qq/QQPay";
9 10
10 11
11 export default class GameService { 12 export default class GameService {
@@ -64,8 +65,8 @@ export default class GameService { @@ -64,8 +65,8 @@ export default class GameService {
64 return SDKApi.adList({ adtyp, uid: DataService.I.UserId, token: DataService.I.Token }) 65 return SDKApi.adList({ adtyp, uid: DataService.I.UserId, token: DataService.I.Token })
65 } 66 }
66 67
67 - wxencrypted(iv,encryptedData) {  
68 - return SDKApi.wxencrypted({iv,encryptedData,openid:DataService.I.OpenId,token: DataService.I.Token,uid: DataService.I.UserId}) 68 + wxencrypted(iv, encryptedData) {
  69 + return SDKApi.wxencrypted({ iv, encryptedData, openid: DataService.I.OpenId, token: DataService.I.Token, uid: DataService.I.UserId })
69 } 70 }
70 71
71 72
@@ -107,7 +108,12 @@ export default class GameService { @@ -107,7 +108,12 @@ export default class GameService {
107 if (cc.sys.platform === cc.sys.BYTEDANCE_GAME) { 108 if (cc.sys.platform === cc.sys.BYTEDANCE_GAME) {
108 return DouyinPay.I.pay(params, opts); 109 return DouyinPay.I.pay(params, opts);
109 } else { 110 } else {
110 - return WxPay.I.pay(params, opts); 111 + if (typeof qq != 'undefined') {
  112 + console.log("QQ支付")
  113 + return QQPay.I.pay(params, opts);
  114 + } else {
  115 + return WxPay.I.pay(params, opts);
  116 + }
111 } 117 }
112 } 118 }
113 /** 119 /**