///补单验单回调 private void OnVerifyPayoutAgain(IAP.Item item, IAP.SupplementTransaction trans, string err, Hashtable data) { if (!string.IsNullOrEmpty(err)) { CheckSupplementTransaction(trans.transactionId); RemoveSomeTransaction(); _VerifyAgain.Add(trans); return; } _lastFetchTime = 0; Fetch(); FetchOffers(); _iapManager.Complete(trans); _config.Listener.OnOfferPurchaseRedeemer(data); _config.Listener.OnOfferPurchaseSuceeded(item, trans); }
private void VerifyPayoutAgain(IAP.SupplementTransaction transaction) { IAP.Item payout = _payouts.Find(delegate(IAP.Item obj) { return(obj.productId == transaction.productId); }); if (payout == null) { EB.Debug.LogError("Cant find payout!!"); return; } Hashtable data = new Hashtable(); data["cents"] = payout.cents; data["currency"] = payout.currencyCode; data["externalTrkid"] = _externalId + (string.IsNullOrEmpty(transaction.IAPPlatform) ? _iapManager.ProviderName : transaction.IAPPlatform); data["payoutid"] = payout.payoutId; data["platform"] = transaction.platform; if (!string.IsNullOrEmpty(transaction.limitedTimeGiftId)) { data["limitedTimeGiftId"] = transaction.limitedTimeGiftId; } if (_iapManager.ProviderName == "itunes") { data["receipt-data"] = transaction.payload; } else { data["response-data"] = transaction.payload; data["response-signature"] = transaction.signature; } EB.Debug.Log("【商城】再次校验:{0}", transaction.transactionId); isRequest = true; _api.VerifyPayout(_iapManager.ProviderName, data, delegate(string err, Hashtable res) { EB.Debug.Log("【商城】再次校验回调:{0}", transaction.transactionId); isRequest = false; OnVerifyPayoutAgain(payout, transaction, err, res); if (chargeSuccessCallBack != null && res != null && string.IsNullOrEmpty(err)) { chargeSuccessCallBack(res); } }); }