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); }
/** * 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 }