CocosCreator 小游戏H5主流渠道聚合SDK

2021-02-02  本文已影响0人  泰山压顶不弯腰

源码地址见:https://github.com/RainUnity/GameSDK/blob/main/description/SDK.js

或直接参考下方

/**

* description:H5小游戏主流渠道聚合SDK(微信,手Q,支付宝,OPPO,VIVO,HUAWEI,BAIDU,XIAOMI等渠道的登录及支付调用接口),持续开发中。。。。。。

* author: 白

* date: 2020.4.18

* version:1.0.0

* compiler environment: Cocos Creator v2.3.1.0

*/

cc.Class({

    extends: cc.Component,

    properties: {

        loginBtn: cc.Button,

        payBtn: cc.Button,

        Info: cc.Label,

    },

    onLoad() {

        this.loginBtn.node.on('click', this.login, this);

        this.payBtn.node.on('click', this.pay, this);

    },

    login: function (event) {

        this.ctoaslogin();

        //this.Info.string ="登录";

        //this.wxLogin();

        // this.qqLogin();

        // this.aliLogin();

        // this.oppoLogin();

        // this.vivoLogin();

        // this.huaweiLogin(true);

        //this.baiduLogin();

        //this.xioamiLogin();

    },

    /**

    *

    *调用支付

    */

    pay: function (event) {

        console.log("点击了支付按钮");

        //this.wxPay();

        // this.qqPay();

        // this.aliPay();

        // this.oppoPay();

        // this.vivoPay();

        // this.huaweiPay();

        // this.baiduPay();

        //this.xioamiPay();

    },

    ctoaslogin()

    {

      console.log("点击了登录按钮")

      var obj =  jsb.reflection.callStaticMethod("org/cocos2dx/javascript/Test", "login","(I)Ljava/lang/String;", 6);

      this.Info.string =obj;

    },

    /**

    * 微信登录  官方文档见https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html

    */

    wxLogin() {

        // let exportJson = {};

        // let sysInfo = wx.getSystemInfoSync();

        // //获取微信界面大小

        // let width = sysInfo.screenWidth;

        // let height = sysInfo.screenHeight;

        // wx.login({

        //    success: (res) => {

        //        if (res.code) {

        //            console.log("获取到的code:", res.code);

        //            exportJson.code = res.code;//向服务端传递code用于获取微信小游戏的用户唯一标识

        //            //发起网络请求

        //            wx.request({

        //                url: 'http://localhost:28089/wxLogin',

        //                data: {

        //                    code: res.code

        //                },

        //                success(res) {

        //                    console.log("123456")

        //                    console.log(res);

        //                }

        //            })

        //            wx.getSetting({

        //                success(res) {

        //                    console.log(res.authSetting);

        //                    if (res.authSetting["scope.userInfo"]) {

        //                        console.log("用户已授权");

        //                        wx.getUserInfo({

        //                            success(res) {

        //                                console.log(res);

        //                                exportJson.userInfo = res.userInfo;

        //                                //此时可进行登录操作

        //                            }

        //                        });

        //                    } else {

        //                        let button = wx.createUserInfoButton({

        //                            type: 'text',

        //                            text: '',

        //                            style: {

        //                                left: 0,

        //                                top: 0,

        //                                width: width,

        //                                height: height,

        //                                backgroundColor: '#00000000',//最后两位为透明度

        //                                color: '#ffffff',

        //                                fontSize: 20,

        //                                textAlign: "center",

        //                                lineHeight: height,

        //                            }

        //                        });

        //                        button.onTap((res) => {

        //                            if (res.userInfo) {

        //                                console.log("用户授权:", res);

        //                                exportJson.userInfo = res.userInfo;

        //                                //此时可进行登录操作

        //                                button.destroy();

        //                            } else {

        //                                console.log("用户拒绝授权:", res);

        //                            }

        //                        });

        //                    }

        //                }

        //            })

        //        } else {

        //            console.log('登录失败!' + res.errMsg)

        //        }

        //    },

        // });

    },

    // /**

    //  * 手Q登录  官方文档见https://q.qq.com/wiki/develop/miniprogram/API/open_port/port_login.html#qq-login

    //  */

    qqLogin() {

        // let exportJson = {};

        // let sysInfo = qq.getSystemInfoSync();

        // //获取微信界面大小

        // let width = sysInfo.screenWidth;

        // let height = sysInfo.screenHeight;

        // qq.login({

        //    success: (res) => {

        //        if (res.code) {

        //            console.log("获取到的code:", res.code);

        //            exportJson.code = res.code;//向服务端传递code用于获取微信小游戏的用户唯一标识

        //            //发起网络请求

        //            qq.request({

        //                url: 'http://localhost:28089/qqLogin',

        //                data: {

        //                    code: res.code

        //                },

        //                success(res) {

        //                    console.log("123456")

        //                    console.log(res);

        //                }

        //            })

        //            qq.getSetting({

        //                success(res) {

        //                    console.log(res.authSetting);

        //                    if (res.authSetting["scope.userInfo"]) {

        //                        console.log("用户已授权");

        //                        qq.getUserInfo({

        //                            success(res) {

        //                                console.log(res);

        //                                exportJson.userInfo = res.userInfo;

        //                                //此时可进行登录操作

        //                            }

        //                        });

        //                    } else {

        //                        console.log("未授权")

        //                        let button = qq.createUserInfoButton({

        //                            type: 'text',

        //                            text: '',

        //                            style: {

        //                                left: 0,

        //                                top: 0,

        //                                width: width,

        //                                height: height,

        //                                backgroundColor: '#00000000',//最后两位为透明度

        //                                color: '#ffffff',

        //                                fontSize: 20,

        //                                textAlign: "center",

        //                                lineHeight: height,

        //                            }

        //                        });

        //                        button.onTap((res) => {

        //                            if (res.userInfo) {

        //                                console.log("用户授权:", res);

        //                                exportJson.userInfo = res.userInfo;

        //                                //此时可进行登录操作

        //                                button.destroy();

        //                            } else {

        //                                console.log("用户拒绝授权:", res);

        //                            }

        //                        });

        //                    }

        //                }

        //            })

        //        } else {

        //            console.log('登录失败!' + res.errMsg)

        //        }

        //    },

        // });

    },

    /**

    * 支付宝登录  官方文档见https://opendocs.alipay.com/mini/api/openapi-authorize

    */

    aliLogin() {

        // my.getAuthCode({

        //    scopes: 'auth_user',

        //    success: (res) => {

        //        my.alert({

        //            content: res.authCode,

        //        });

        //    },

        // });

    },

    /**

    * OPPO登录  官方文档见https://cdofs.oppomobile.com/cdo-activity/static/201809/30/gamehall/book/not_battle/readme.html#3-js-sdk

    */

    oppoLogin() {

        // OPPO.login({

        //    packageName: 'your.package.name', //需要修改成开发者在oppo开放平台填写的包名才能成功调用此方法

        //    callback: function(res) {

        //        console.log(res)

        //    }

        // })

    },

    /**

    * VIVO登录  官方文档见https://minigame.vivo.com.cn/documents/#/api/service/newaccount?id=login

    */

    vivoLogin() {

        // if (qg.getSystemInfoSync().platformVersionCode >= 1053) {

        //    qg.login().then((res) => {

        //        if (res.data.token) {

        //            // 使用token进行服务端对接

        //        }

        //    }, (err) => {

        //        console.log('登录失败' + JSON.stringify(err));

        //    });

        // }

    },

    // /**

    //  * 华为登录  官方文档见https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/quickgame-api-account

    //  * @param {*} issafe 是否走防沉迷登录

    //  */

    huaweiLogin(issafe) {

        // if (issafe) {

        //    console.log("普通游戏登录")

        //        /**

        //          * 普通游戏登录。

        //          */

        //    hbs.gameLogin({

        //        forceLogin: 1, //强制登录,未登录时会弹出登录对话框

        //        appid: "102066507", //appid需要与华为开发者联盟后台配置一致

        //        success: function(res) {

        //            console.log("game login success");

        //            console.log("playerId是:" + res.playerId);

        //            console.log("displayName是:" + res.displayName);

        //            console.log("playerLevel是:" + res.playerLevel);

        //            console.log("isAuth是:" + res.isAuth);

        //            console.log("ts是:" + res.ts);

        //            console.log("gameAuthSign是:" + res.gameAuthSign);

        //            console.log("开发保存玩家信息+++++++++++++++++++++++");

        //            /***

        //              * 当用户完成选择区服信息进入游戏后,或者用户的等级发生变化时,游戏可以调用此接口存储用户的角色信息。如果游戏本身不具有游戏等级、角色名称、游戏区服或者游戏公会这些信息则可以不接入此接口。

        //              */

        //            hbs.savePlayerInfo({

        //                appid: "102066507",

        //                area: "cn",

        //                rank: "1",

        //                role: "a",

        //                sociaty: "1",

        //                success: function(data) {

        //                    console.log("DUWENJUN save player info success:" + res);

        //                },

        //                fail: function(data, code) { console.log("DUWENJUN save player info fail:" + data + ", code:" + code); }

        //            });

        //        },

        //        fail: function(data, code) { console.log("DUWENJUN game login fail:" + data + ", code:" + code); }

        //    });

        // } else {

        //    console.log("防沉迷登录")

        //        /**

        //          * 根据国家要求对未成年人的游戏时间进行防沉迷监控。调用此接口实现游戏登录即可接入防沉迷的能力。

        //          */

        //    hbs.gameLoginWithReal({

        //        forceLogin: 1,

        //        appid: "102066507",

        //        success: function(res) {

        //            console.log("game login success");

        //            console.log("playerId是:" + res.playerId);

        //            console.log("displayName是:" + res.displayName);

        //            console.log("playerLevel是:" + res.playerLevel);

        //            console.log("isAuth是:" + res.isAuth);

        //            console.log("ts是:" + res.ts);

        //            console.log("gameAuthSign是:" + res.gameAuthSign);

        //            console.log("hiResImageUri是:" + res.hiResImageUri);

        //            console.log("imageUri是:" + res.imageUri);

        //            console.log("开发保存玩家信息+++++++++++++++++++++++");

        //            /***

        //              * 当用户完成选择区服信息进入游戏后,或者用户的等级发生变化时,游戏可以调用此接口存储用户的角色信息。如果游戏本身不具有游戏等级、角色名称、游戏区服或者游戏公会这些信息则可以不接入此接口。该接口后续将代替 hbs.savePlayerInfo。

        //              */

        //            hbs.savePlayerInfoWithReal({

        //                area: "cn-1", // 玩家区服信息

        //                rank: "100", // 玩家等级

        //                role: "A11", // 角色名称

        //                sociaty: "ss", // 游戏公会

        //                success: function(res) {

        //                    console.log("save player info success");

        //                    /**

        //                      * 获取玩家帐户ID。

        //                      */

        //                    hbs.getCachePlayerId({

        //                        success: function(res) {

        //                            console.log("game getCachePlayerId: success");

        //                            console.log("playerId是" + res.playerId);

        //                            /**

        //                              * 获取玩家的额外信息(仅支持中国大陆地区游戏)。

        //                              */

        //                            hbs.getPlayerExtraInfo({

        //                                transactionId: "",

        //                                success: function(res) {

        //                                    console.log("get player ExtraInfo success");

        //                                    console.log("获取玩家的额外信息成功:" + res.playerId);

        //                                },

        //                                fail: function(data, code) {

        //                                    console.log("get player ExtraInfo fail:" + data + ", code:" + code);

        //                                }

        //                            });

        //                        },

        //                        fail(data, code) {

        //                            console.log("on gameLoginWithReal fail: " + data + "," + code);

        //                            that.getLabel.string = data + ", " + code;

        //                        },

        //                        complete() {

        //                            console.log("on gameLoginWithReal: complete");

        //                        }

        //                    });

        //                },

        //                fail: function(data, code) {

        //                    console.log("save player info fail:" + data + ", code:" + code);

        //                }

        //            });

        //        },

        //        fail: function(data, code) { console.log("DUWENJUN game login fail:" + data + ", code:" + code); },

        //        complete() { console.log("on gameLoginWithReal: complete"); }

        //    })

        // }

    },

    // /**

    //  *百度登录  官方文档见https://smartprogram.baidu.com/docs/develop/api/open/log_swan-login/

    //  */

    baiduLogin() {

            // swan.login({

            //    success: res => {

            //        console.log("百度code是" + res.code);

            //        swan.request({

            //            url: 'http://localhost:28089/baiduLogin', // 开发者服务器地址

            //            data: {

            //                code: res.code

            //            }

            //        });

            //    },

            //    fail: err => {

            //        console.log('login fail', err);

            //    }

            // });

    },

    // /**

    //  * 小米登录  官方文档见https://dev.mi.com/console/doc/detail?pId=1739#qgloginobject

    //  */

    xioamiLogin() {

        //    qg.login({

        //        success: function (res) {

        //            console.log(res.appAccountId)

        //            console.log(res.session)

        //        },

        //        fail: function (res) { }

        //    });

        //    qg.getUserInfo({

        //        success: function (res) {

        //            console.log('nickName:${res.userInfo.nickName}')

        //        },

        //        fail: function () {

        //            console.log('user reject!')

        //        },

        //        complete: function (res) {

        //            console.log('get userInfo complete')

        //        }

        //    });

    },

    // //微信支付  官方文档见https://developers.weixin.qq.com/miniprogram/dev/api/open-api/payment/wx.requestPayment.html

    wxPay() {

        //    wx.requestPayment({

        //        timeStamp: '',

        //        nonceStr: '',

        //        package: '',

        //        signType: 'MD5',

        //        paySign: '',

        //        success(res) { },

        //        fail(res) { }

        //    })

    },

    // //手Q支付 官方文档见https://q.qq.com/wiki/develop/miniprogram/API/open_port/port_pay.html#qq-requestpayment

    qqPay() {

        //    qq.requestPayment({

        //        package: "prepay_id=" + 000,

        //        bargainor_id: "",

        //        success(res) { },

        //        fail(res) { }

        //    })

    },

    // //支付宝支付 官方文档见https://opendocs.alipay.com/mini/api/openapi-pay

    aliPay() {

        //    my.tradePay({

        //        // 调用统一收单交易创建接口(alipay.trade.create),获得返回字段支付宝交易号trade_no

        //        tradeNO: '201711152100110410533667792',

        //        success: (res) => {

        //            my.alert({

        //                content: JSON.stringify(res),

        //            });

        //        },

        //        fail: (res) => {

        //            my.alert({

        //                content: JSON.stringify(res),

        //            });

        //        }

        //    });

    },

    // //OPPO支付  官方文档见https://cdofs.oppomobile.com/cdo-activity/static/201809/30/gamehall/book/not_battle/readme.html#6-%E6%8C%A1%E6%9D%BF%E7%9A%84%E4%BD%BF%E7%94%A8

    oppoPay() {

        //    OPPO.pay({

        //        packageName: 'com.testgame.nearme.gamecenter', //开发者在oppo开放平台填写的包名

        //        appName: '游戏名称',

        //        appVersion: '1.0',

        //        appKey: 'TESTOPPOPAY', //在oppo开放平台得到的appKey

        //        orderId: '20171208001', //开发者在自己业务系统下的订单号

        //        price: 1, //单位 分

        //        productName: '商品名称',

        //        productDesc: '商品描述',

        //        callbackUrl: 'http: //www.yourdomain.com/notify',

        //        //接收支付平台付款通知的地址,与oppo android SDK的支付通知处理一致

        //        callback: function (res) {

        //            console.log(res)

        //        }

        //    });

    },

    // //VIVO支付  官方文档见https://minigame.vivo.com.cn/documents/#/api/service/newpay

    vivoPay() {

        //    qg.pay({

        //        orderInfo: 'orderStr',

        //        success: function (ret) {

        //            qg.showToast({

        //                message: "支付成功:" + JSON.stringify(ret)

        //            })

        //        },

        //        fail: function (errmsg, errcode) {

        //            qg.showToast({

        //                message: "支付失败:" + errcode + ': ' + errmsg

        //            })

        //        },

        //        complete: function () {

        //            qg.showToast({

        //                message: "支付完成"

        //            })

        //        }

        //    })

    },

    // //华为支付  官方文档见https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/quickgame-api-payment#hwPay

    huaweiPay() {

        //    hbs.hwPay({

        //        orderInfo: {

        //            "amount": 0.01,  //商品金额

        //            "applicationID": "100389777",  应用ID,在华为开发者联盟上获取的APP ID

        //            "productDesc": "商品描述",

        //            "productName": "商品名称",

        //            "serviceCatalog": "X6",  //游戏设置为"X6",应用设置为"X5"

        //            "merchantId": "10086000000000293",  //华为开发者联盟上申请支付服务获取的“支付ID“

        //            "merchantName": "商户名称",  //商户名称

        //            "sign": this.sign,  //签名

        //            "requestId": this.requestid,  //在支付前生成,用于唯一标识一次支付请求。支付平台在服务器回调接口中会原样返回requestId的值

        //            "urlver": "2",  //固定值为2

        //            "sdkChannel": 1,  // 1代表应用市场渠道

        //            "publicKey": "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIL/7zgG9KCjm5IeGFzq8oVaxCqFJ9+m/3rGMXU2p9K+bHLPR1m3c9TMZRGjkZbTZ0G/VLPO6BxiP+w+VM+Z3fECAwEAAQ=="  //华为开发者联盟上申请支付服务获取的“支付公钥”

        //        },

        //        success: function (ret) { console.log("pay success " + ret) },

        //        fail: function (erromsg, errocode) { console.log("pay fail : " + errocode + erromsg) }

        //    })

    },

    // //百度支付  官方文档见https://smartprogram.baidu.com/docs/develop/api/open/payment_swan-requestPolymerPayment/

    baiduPay() {

        //    // 这里只做字段展示,详细示例请在代码片段中查看

        //    swan.requestPolymerPayment({

        //        orderInfo: {

        //            "dealId": "470193086",

        //            "appKey": "MMMabc",

        //            "totalAmount": "1",

        //            "tpOrderId": "3028903626",

        //            "dealTitle": "智能小程序Demo支付测试",

        //            "signFieldsRange": "1",

        //            "rsaSign": '',

        //            "bizInfo": ''

        //        },

        //        success: res => {

        //            swan.showToast({

        //                title: '支付成功',

        //                icon: 'success'

        //            });

        //        },

        //        fail: err => {

        //            swan.showToast({

        //                title: JSON.stringify(err)

        //            });

        //            console.log('pay fail', err);

        //        }

        //    });

    },

    // //小米支付  官方文档见https://dev.mi.com/console/doc/detail?pId=1739#qgpayobject

    xioamiPay() {

        // qg.pay({

        //    orderInfo: {

        //        appId: "2882303761117490626",

        //        appAccountId: "74317",

        //        session: "TRQJzccscL9u6VvC",

        //        cpOrderId: '1556088963',

        //        cpUserInfo: '74317',

        //        displayName: '游戏元宝',

        //        feeValue: 100,

        //        sign: '22fea7804df43420dc9886a04c028b6f335d87b6',

        //    },

        //    success: function (data) {

        //        //{memo: "支付成功", resultStatus: "9000"}

        //        //9000: 支付成功

        //    },

        //    fail: function (data) {

        //        //{memo: "已取消支付", resultStatus: "6001"}

        //        //6001: 已取消支付

        //        //5000: 未安装微信

        //        //5001: 微信订单未支付

        //    }

        // })

    },

});

上一篇下一篇

猜你喜欢

热点阅读