GameMaker: расширение IAP не работает? Возврат не может быть обнаружен - PullRequest
0 голосов
/ 27 октября 2018

В настоящее время в GameMaker: Studio я использую расширение Google IAP, чтобы разрешать покупки IAP.Это работает.

Однако одна часть, которая не работает, это обнаружение возврата IAP.В настоящее время игроки могут приобрести неиспользуемый IAP, а затем просто вернуть его, пока игра все еще думает, что он считается купленным.

Существует статус, который должен быть активирован: iap_refunded в асинхронном режиме IAPсобытие, но оно никогда не происходит, хотя я вернул IAP через консоль Google Play.

Единственный статус, который срабатывает, это iap_purchased .

Я убежденрасширение скорее всего сломано из того, что я исследовал онлайн.У кого-нибудь есть решение?

IAP Event:

/// Google / Non-Amazon IAP
show_debug_message("===========================IAP Event");

var val = ds_map_find_value(iap_data, "type");

show_debug_message("IAP type: " + string(val));
switch(val) {
    case iap_ev_purchase:
        var map = ds_map_create();
        var purchase_id = ds_map_find_value(iap_data, "index");
        iap_purchase_details(purchase_id, map);

        var status = ds_map_find_value(map, "status");
        show_debug_message("IAP purchase status: " + string(status));

        if(status == iap_purchased) {
            var product_id = ds_map_find_value(map, "product");
            ds_map_replace(global.purchaseMap, product_id, 1);

            switch(product_id) {
                case IAP_REMOVEADS:
                    handle_iap(IAP_REMOVEADS);  
                break;
            }

        }
        else if(status == iap_refunded) {
            var product_id = ds_map_find_value(map, "product");
            ds_map_replace(global.purchaseMap, product_id, 0);
            switch(product_id) {
                case IAP_REMOVEADS:
                    dehandle_iap(IAP_REMOVEADS);
                break;
            }
        }
    break;
}

ds_map_secure_save(global.purchaseMap, global.iap_data_filename);
...