/// <summary> /// 接收到询问支付限制的事件 /// </summary> /// <param name="e"></param> /// <param name="args"></param> private void OnCheckPayLimit(CheckPayLimitEvent e, object[] args) { PayLimitType payLimitType = PayLimitType.None;//默认不需要实名认证,无限制 Debug.LogWarning("OnCheckPayLimit====openRealName==" + openRealName); if (openRealName) { if (RealNameStatus == RealNameStatus.NotRealName) { StartRealNameAttestation(); //自动开始实名制认证 payLimitType = PayLimitType.NoRealName; } else if (RealNameStatus == RealNameStatus.IsRealName) { if (isAdult) //成年 { payLimitType = PayLimitType.None; } else //未成年 { CheckPayLimitBySDK(e.payAmount); Debug.LogWarning("CheckPayLimitBySDK"); return; } } else if (RealNameStatus == RealNameStatus.NotNeed) { payLimitType = PayLimitType.None;//默认不需要实名认证,无限制 } } Debug.LogWarning("OnCheckPayLimit====payLimitType==" + payLimitType); CheckPayLimitResultEvent.Dispatch(e.payAmount, payLimitType); }
/// <summary> /// 判断支付 限制的回调 /// </summary> /// <param name="e"></param> /// <param name="args"></param> private static void OnCheckPayLimitResult(CheckPayLimitResultEvent e, object[] args) { Debug.Log("OnCheckPayLimitResult SDK: " + e.payLimitType); if (e.payLimitType == PayLimitType.None) { PayInfo payInfo = new PayInfo(m_goodsInfo.goodsID, m_goodsInfo.localizedTitle, m_payPlatform.payPlatformTag, FrameWork.SDKManager.GoodsType.NORMAL, "", m_goodsInfo.localizedPrice, m_goodsInfo.isoCurrencyCode, user.userID, m_payPlatform.SDKName); if (Application.platform == RuntimePlatform.Android) { SDKManager.Pay(m_payPlatform.SDKName, payInfo); } else { SDKManager.Pay(payInfo); } } else if (e.payLimitType == PayLimitType.ChildLimit) { //未成年本日消费超出 OnVerificationResultCallBack(new PayResult(-21, m_goodsInfo.goodsID, "今日消费已超出未成年限制")); } else if (e.payLimitType == PayLimitType.NoRealName) { //未实名制,无法支付 OnVerificationResultCallBack(new PayResult(-22, m_goodsInfo.goodsID, "请完成实名制认证后重试")); } else { //错误,不应该会进来 } }
/// <summary> /// 查询支付结果的回调 /// </summary> /// <param name="isLimit"></param> private void OnPayLimitCallBack(bool isLimit, int payAmount) { PayLimitType payLimitType = PayLimitType.None; if (isLimit) { payLimitType = PayLimitType.ChildLimit; } Debug.Log("OnPayLimitCallBack from SDK:" + payLimitType); CheckPayLimitResultEvent.Dispatch(payAmount, payLimitType); }