cocos-creator使用记录35_开通微信小游戏虚拟支付

本文档详细记录了在cocos-creator中开通并实现微信小游戏虚拟支付的步骤,包括开通前提、所需参数和代码实现。重点介绍了支付流程、获取access_token、扣游戏币的接口调用以及相关加密算法的使用。


1.前言
https://developers.weixin.qq.com/minigame/dev/tutorial/open-ability/payment.html
开通虚拟支付的前提:你注册的微信公众平台账号的主体是公司。
若是你注册的是个人账号,则不能更改。

开通成功会获得如下参数:
offerid、secret、

代码中需要的参数:
appid、appsecret、
access_token、      
openid、session_key

2.代码
common.js---------------
appid: "wx11111111",
appsecret: "abcdefg",
offerid: "123456789", //在米大师中申请的应用id
url:{
    path4: "https://api.weixin.qq.com/", //扣游戏币url
    pay1: "cgi-bin/midas/pay",  //扣游戏币
    pay2: "cgi-bin/midas/sandbox/pay", //扣游戏币测试
},
userLoginData: {}, //用户信息(nickName,avatarUrl,gender,time第1次进入游戏时间,openId,sessionKey)
httpRequest: function(url, data, call = function(){}, sync = false, method = 'POST', json = false){ //默认'POST',根据情况设置为'GET'
    if(!(cc.sys.platform === cc.sys.WECHAT_GAME)) return;
    if(json){
        wx.request({
            url: url,
            data: data,
            method: method || "POST",
            header: {'content-type': 'application/json'},
            success(res){call(res);},
            fail(){call();}
        });
    }else{
        wx.request({
            url: url,
            data: data,
            method: method || "POST",
            header: {'content-type': 'application/x-www-form-urlencoded'},
            success(res){call(res);},
            fail(){call();}
        });
    }
},

shop.js---------------
var sha256 = require('sha256');

onBuyBtn: function(event, index){ //购买按钮
    this.playBtnSound();
    var self = this;
    if(cc.sys.platform === cc.sys.OS_ANDROID){ //android平台
        var moneyList = [1, 6, 12];
        //虚拟支付的流程:支付、扣游戏币(需要access_token、openid、session_key)
        wx.requestMidasPayment({
            mode: 'game',
            offerId: '', //在米大师侧申请的应用 id
            buyQuantity: 10 * moneyList[index - 1],
            zoneId: 1,
            env: 1, //0米大师正式环境,1米大师沙箱环境
            currencyType: CNY,
            platform: android,
            success() { // 支付成功
                console.log("支付成功!" + moneyList[index - 1] + "元");
                //获得access_token
                common.httpRequest("https://api.weixin.qq.com/cgi-bin/token",
                    {
                        grant_type: client_credential,
                        appid: common.appid,
                        secret: common.appsecret
                    },
                    function(data){
                        console.log("获得access_token成功:", data);
                        var accessToken = data.data.data.access_token;
                        //扣游戏币
                        var now = Date.now();
                        var billNum = common.app_name + "_" + now + "_" + Math.floor(Math.random() * (titleList.leng

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值