Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 统一IAP收据验证_C#_Unity3d_In App Purchase_Jailbreak - Fatal编程技术网

C# 统一IAP收据验证

C# 统一IAP收据验证,c#,unity3d,in-app-purchase,jailbreak,C#,Unity3d,In App Purchase,Jailbreak,我已经在我的项目中与Unity(2019.4)进行了一个项目,用户可以通过应用内购买购买产品 我使用无代码IAP管理器并使用收据验证来验证购买 在安卓系统中,我没有问题。但在IOS中,越狱手机可以用假支付购买产品 这是我的代码示例 public void OnPurchaseComplete(Product product) { var validator = new CrossPlatformValidator(GooglePlayTangle.Data(), Appl

我已经在我的项目中与Unity(2019.4)进行了一个项目,用户可以通过应用内购买购买产品

我使用无代码IAP管理器并使用收据验证来验证购买

在安卓系统中,我没有问题。但在IOS中,越狱手机可以用假支付购买产品

这是我的代码示例

public void OnPurchaseComplete(Product product)
    {
    var validator = new CrossPlatformValidator(GooglePlayTangle.Data(),
    AppleTangle.Data(), Application.identifier);

    bool ValidPurchase = false;

    try
    {
        // On Google Play, result has a single product ID.
        // On Apple stores, receipts contain multiple products.
        var result = validator.Validate(product.receipt);
        // For informational purposes, we list the receipt(s)
        Debug.Log("Receipt is valid. Contents:");


        
        foreach (IPurchaseReceipt productReceipt in result)
        {
            Debug.Log(productReceipt.productID);
            Debug.Log(productReceipt.purchaseDate);
            Debug.Log(productReceipt.transactionID);
            
            
            GooglePlayReceipt google = productReceipt as GooglePlayReceipt;
            if (null != google)
            {
                // This is Google's Order ID.
                // Note that it is null when testing in the sandbox
                // because Google's sandbox does not provide Order IDs.
                ValidPurchase = true;

                Debug.Log(" google transaction" + google.transactionID);
                Debug.Log(" google transaction" + google.purchaseState);
                Debug.Log(" google transaction" + google.purchaseToken);
            }

            AppleInAppPurchaseReceipt apple = productReceipt as AppleInAppPurchaseReceipt;
            if (null != apple)
            {
                ValidPurchase = true;
                Debug.Log(" apple transaction1" + apple.originalTransactionIdentifier);
                Debug.Log(" apple transaction2" + apple.subscriptionExpirationDate);
                Debug.Log(" apple transaction3" + apple.cancellationDate);
                Debug.Log(" apple transaction4" + apple.quantity);
            }
        }

        

    }
    catch (IAPSecurityException)
    {
        Debug.Log("Invalid receipt, not unlocking content");
        ValidPurchase = false;
    }
    //product.receipt;
    if (ValidPurchase)
    {
        //successfull
    }
} 

我应该做些什么来防止iPhone被越狱。

你有服务器吗?如果是,您可以在服务器上验证收据,并让应用程序下载付费内容。如果没有,我想你也无能为力。