Exemple #1
0
    public string PayItem(SDKData.PayOrderData orderData)
    {
        if (string.IsNullOrEmpty(orderData.orderTime))
        {
            orderData.orderTime = System.DateTime.Now.Ticks.ToString();
        }

        var payModel = new YaoLingSDKCallBackManager.YX116PayParamsModel()
        {
            userid         = orderData.userid,
            username       = SDK_UserName,//只能填sdk的用户名
            amount         = double.Parse(string.Format("{0:F2}", orderData.amount)),
            orderid        = orderData.orderId,
            rolenid        = orderData.roleID.ToString(),
            rolename       = orderData.roleName,
            gameServerId   = orderData.zoneID.ToString(),
            gameServerName = orderData.zoneName,
            productname    = orderData.productName,
            productDesc    = orderData.productDesc,
            orderTime      = orderData.orderTime,//116 22222 22222  => 22222 22222
            extra          = orderData.extra,

            productId = orderData.productId,
            gamename  = orderData.gamename,
        };

        #region 2018年8月17日14:18:09 qiubin添加 曜灵 116 聚合 SDK
#if UNITY_ANDROID
        YaoLingSDKCallBackManager.Instance.CallAndroidFunc(YaoLingSDKCallBackManager.YaoLinAndroidSDKNameType.StartSDKPay, LitJson.JsonMapper.ToJson(payModel));
#elif UNITY_IOS
        SDKIOSFunction.sdkmanagerpayorder(payModel.orderid, payModel.rolename, payModel.gameServerId, payModel.amount.ToString()
                                          , payModel.productId, payModel.productname, payModel.extra, payModel.gamename, payModel.gameServerName, "1");
#endif
        #endregion

        return(null);
    }
Exemple #2
0
        /**
         * eg:
         *          payData.SetData(U3DTypeAttName.REAL_PRICE,"100");
         *      payData.SetData(U3DTypeAttName.ITEM_NAME,"sk bi");
         *      payData.SetData(U3DTypeAttName.ITEM_DESC,"desc");
         *      payData.SetData(U3DTypeAttName.ITEM_COUNT,"1");
         *      payData.SetData(U3DTypeAttName.ITEM_SEVER_ID,"id");
         *      payData.SetData(U3DTypeAttName.SEVER_ID,"1");
         *      payData.SetData(U3DTypeAttName.EXTRA,"extra");
         *
         * 支付函数
         * @param _in_pay pay object 支付对象的结构体 若至少传入 一个 价格
         * 参数1:商品信息  参数2:订单id(由服务器生成)
         * @return bill number
         */
        public string PayItem(SDKData.PayOrderData orderData, string orderId)
        {
#if YaoLing
            Debug.LogWarning("调用曜灵116sdk 支付!");
            #region 2018年8月17日14:18:09 qiubin添加 曜灵 116 聚合 SDK
            var payModel = new YaoLingSDKCallBackManager.YX116PayParamsModel()
            {
                userid         = Id,
                username       = UserName,
                amount         = double.Parse(string.Format("{0:F2}", orderData.amount)),
                orderid        = orderId,
                rolenid        = orderData.roleID.ToString(),
                rolename       = orderData.roleName,
                gameServerId   = orderData.zoneID.ToString(),
                gameServerName = orderData.zoneName,
                productname    = orderData.productName,
                productDesc    = orderData.productDesc,
                orderTime      = orderId.Substring(orderId.Length - 10, 10),//116 22222 22222  => 22222 22222
                extra          = orderData.roleID + "|" + orderData.zoneID,
            };
            YaoLingSDKCallBackManager.Instance.CallAndroidFunc(YaoLingSDKCallBackManager.YaoLinAndroidSDKNameType.StartSDKPay, LitJson.JsonMapper.ToJson(payModel));

            return(null);

            #endregion
#else
            //创建一个订单信息
            U3DTypeBaseData payData = new U3DTypeBaseData();
            //用户ID,渠道返回,没有填空字符串
            payData.SetData(U3DTypeAttName.USER_ID, Id);
            //用户token,登录验签完成后由游戏服务端返回,没有填空字符串
            payData.SetData(U3DTypeAttName.USER_TOKEN, Token);
            //商品支付价格(单位:分)
            payData.SetData(U3DTypeAttName.REAL_PRICE, (orderData.amount * 100).ToString());
            //商品名称,不要出现空格和特殊字符。
            payData.SetData(U3DTypeAttName.ITEM_NAME, orderData.productName);
            //商品数量
            payData.SetData(U3DTypeAttName.ITEM_COUNT, orderData.productCount);
            //所在服务器id(如果没有填“0”)
            payData.SetData(U3DTypeAttName.SERVER_ID, "0");
            //所在服务器名字(如果没有填“server_name”)
            payData.SetData(U3DTypeAttName.SERVER_NAME, "server_name");
            //所在大区id(如果没有填“0”),注意应用宝要求:账户分区ID_角色ID。每个应用都有一个分区ID为1的默认分区,分区可以在cpay.qq.com/mpay上自助配置。如果应用选择支持角色,则角色ID接在分区ID号后用"_"连接,角色ID需要进行urlencode。
            payData.SetData(U3DTypeAttName.ZONE_ID, orderData.zoneID.ToString());
            //所在大区名字(如果没有填“server_name”)
            payData.SetData(U3DTypeAttName.ZONE_NAME, orderData.zoneName);
            //TODO 内部订单号(必须填写,并保证多区情况下,订单号唯一)
            //string orderId = string.Format("{0}{1}{2}", Channelid, orderData.productId, SDKData.PayOrderData.GetCurrentTimeMiss());
            payData.SetData(U3DTypeAttName.BILL_NUMBER, orderId);
            //商品id(需和TypeSDK Server商品列表保持一致)
            payData.SetData(U3DTypeAttName.ITEM_SERVER_ID, orderData.productId);
            //传递的额外参数(建议传入需要用来做订单标识的信息)
            payData.SetData(U3DTypeAttName.EXTRA, orderData.roleID + "|" + orderData.zoneID);
            //商品描述,不要出现空格和特殊字符串
            payData.SetData(U3DTypeAttName.ITEM_DESC, orderData.productDesc);
            //玩家在游戏中的角色ID
            payData.SetData(U3DTypeAttName.ROLE_ID, orderData.roleID.ToString());
            //玩家在游戏中的角色名字
            payData.SetData(U3DTypeAttName.ROLE_NAME, orderData.roleName);

            //		selfInit ();
            Debug.Log("U3D_Type sdk buy item");
            string billNo = bonjour.PayItem(payData);
            return(billNo);
#endif
        }