+Megalodon Posted November 9, 2021 Share Posted November 9, 2021 The API actually returns wrong value for "hasSolutionChecker" Within a macro that already was doing a good job all the time the following line returns the value "false" instead of "true": $data = gcapi2("geocaches/$d_Code?fields=referenceCode,hasSolutionChecker","GET") it returns the following: {"referenceCode":"GC99DTZ","hasSolutionChecker":false} I tested it more times. 2 Quote Link to comment
+Difool Posted November 10, 2021 Share Posted November 10, 2021 I see this as well, the API return false for hasSolutionChecker. Quote Link to comment
+Megalodon Posted November 13, 2021 Author Share Posted November 13, 2021 I read about using the following call: $data = gcapi2("geocaches/$d_Code?fields=referenceCode,hasSolutionChecker") but the result is the same. So still no posibility to get the information, if the GC internal checker is active. Please inform the API users, what's the problem and when it will be fixed. Quote Link to comment
+Megalodon Posted November 19, 2021 Author Share Posted November 19, 2021 did someone check, if API is returning the wrong value? maybe the problem is the database itself?! Quote Link to comment
+Surfoo Posted November 29, 2021 Share Posted November 29, 2021 I checked your geocode with their Swagger UI (https://api.Groundspeak.com/api-docs/index#!/Geocaches/Geocaches_GetGeocache) , and I have the same result : { "referenceCode": "GC99DTZ", "hasSolutionChecker": false } 1 Quote Link to comment
+Megalodon Posted December 5, 2021 Author Share Posted December 5, 2021 additionally the request , if the 'corrected coordinates' are correct returns with an error: Quote ChilkatLog: PostJson(1703ms): DllDate: Dec 27 2016 ChilkatVersion: 9.5.0.65 UnlockPrefix: GSAKNEHttp Architecture: Little Endian; 32-bit Language: ActiveX VerboseLogging: 1 url: https://api.Groundspeak.com/v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode contentType: application/json jsonUtf8Size: 66 finalizeRequestHeader: Auto-adding Host header. --finalizeRequestHeader fullRequest(1703ms): findAddHttpConn(16ms): GetIEProxySetting(16ms): RegistryQueryError: Das System kann die angegebene Datei nicht finden. ValueName: ProxyServer Failed to get key value valueName: ProxyServer Failed to read registry: CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/ProxyServer --GetIEProxySetting --findAddHttpConn httpRequest: httpVersion: 1.1 verb: POST path: /v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode contentType: application/json charset: windows-1252 sendCharset: 0 mimeHeader: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Content-Encoding: identity Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 Accept-Language: en-us,en;q=0.5 Authorization: Bearer eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiTWVnYWxvZG9uIiwicGdkIjoiYTFiMWNmNjItYmM1Ni00Mjc2LWI5NGMtNmNlMzMzNGRkY2I0IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiIxOTAyMDgyIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbIlB1YmxpYyIsIlByZW1pdW0iXSwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy91c2VyZGF0YSI6Ijc5Mjk2MjA0LTI3NzUtNDc1My1CMUQyLTUyQjk5NDE3RDNFNiIsImxnZCI6IjljNjAyMjJjLTIwZWQtNDI2Ny1iMTlhLWVkNzQ2MWRkZjY0NCIsInNjb3BlIjoiYXBpIiwibmJmIjoxNjM4NTk3MzMzLCJleHAiOjE2Mzg2MDA5MzMsImlzcyI6Imh0dHBzOi8vb2F1dGguZ2VvY2FjaGluZy5jb20vdG9rZW4iLCJhdWQiOiI3OTI5NjIwNC0yNzc1LTQ3NTMtYjFkMi01MmI5OTQxN2QzZTYifQ.TAaVBORarCjDtoqHMRMoAWKQrzTiXeoq9GGyI5QZcmU Accept-Encoding: gzip --httpRequest HttpOptions: AddHostHeader: 1 AllowCookieResponseCaching: 0 AllowGzip: 1 CookieDir: D:\#Daten\GSAK\cookies FollowRedirects: 1 Login: LoginDomain: AuthMethod: MaxResponseSize: 0 MaxUrlLen: 2000 PasswordLen: 0 ReadTimeoutMs: 45000 RequiredContentType: ResumePoint: 0 SaveCookies: 1 SendBufferSize: 65535 SendCookies: 1 UnavailableRetryCount: 0 UnavailableRetryWaitMs: 2000 --HttpOptions a_synchronousRequest(1687ms): generateRequestHeader(15ms): httpRequestGenStartLine: authOnly: 0 hasMimeBody: 1 genStartLine: startLine: POST /v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode HTTP/1.1 --genStartLine --httpRequestGenStartLine startLine: POST /v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode HTTP/1.1 genHeaderSb: getMimeHeaderHttp: headerField: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 headerField: Content-Encoding: identity headerField: Connection: keep-alive headerField: User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 headerField: Accept-Language: en-us,en;q=0.5 headerField: Authorization: Bearer eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiTWVnYWxvZG9uIiwicGdkIjoiYTFiMWNmNjItYmM1Ni00Mjc2LWI5NGMtNmNlMzMzNGRkY2I0IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiIxOTAyMDgyIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbIlB1YmxpYyIsIlByZW1pdW0iXSwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy91c2VyZGF0YSI6Ijc5Mjk2MjA0LTI3NzUtNDc1My1CMUQyLTUyQjk5NDE3RDNFNiIsImxnZCI6IjljNjAyMjJjLTIwZWQtNDI2Ny1iMTlhLWVkNzQ2MWRkZjY0NCIsInNjb3BlIjoiYXBpIiwibmJmIjoxNjM4NTk3MzMzLCJleHAiOjE2Mzg2MDA5MzMsImlzcyI6Imh0dHBzOi8vb2F1dGguZ2VvY2FjaGluZy5jb20vdG9rZW4iLCJhdWQiOiI3OTI5NjIwNC0yNzc1LTQ3NTMtYjFkMi01MmI5OTQxN2QzZTYifQ.TAaVBORarCjDtoqHMRMoAWKQrzTiXeoq9GGyI5QZcmU headerField: Accept-Encoding: gzip --getMimeHeaderHttp --genHeaderSb addCookies(15ms): Auto-adding any accumulated cookies. CookieDir: D:\#Daten\GSAK\cookies CookieDomain: api.Groundspeak.com CookiePath: /v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode loadCookieJar: Path: /v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode GetDomainCookiesXml: CookieDir: D:\#Daten\GSAK\cookies Domain: api.Groundspeak.com --GetDomainCookiesXml --loadCookieJar AddingCookie: ASP.NET_SessionId=jrkpndqknaxare1pzfxgua14 --addCookies m_host: api.Groundspeak.com finalRequestHdr: Content-Type: application/json Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Content-Encoding: identity Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 Accept-Language: en-us,en;q=0.5 Authorization: Bearer eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiTWVnYWxvZG9uIiwicGdkIjoiYTFiMWNmNjItYmM1Ni00Mjc2LWI5NGMtNmNlMzMzNGRkY2I0IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiIxOTAyMDgyIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbIlB1YmxpYyIsIlByZW1pdW0iXSwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy91c2VyZGF0YSI6Ijc5Mjk2MjA0LTI3NzUtNDc1My1CMUQyLTUyQjk5NDE3RDNFNiIsImxnZCI6IjljNjAyMjJjLTIwZWQtNDI2Ny1iMTlhLWVkNzQ2MWRkZjY0NCIsInNjb3BlIjoiYXBpIiwibmJmIjoxNjM4NTk3MzMzLCJleHAiOjE2Mzg2MDA5MzMsImlzcyI6Imh0dHBzOi8vb2F1dGguZ2VvY2FjaGluZy5jb20vdG9rZW4iLCJhdWQiOiI3OTI5NjIwNC0yNzc1LTQ3NTMtYjFkMi01MmI5OTQxN2QzZTYifQ.TAaVBORarCjDtoqHMRMoAWKQrzTiXeoq9GGyI5QZcmU Accept-Encoding: gzip Cookie: ASP.NET_SessionId=jrkpndqknaxare1pzfxgua14 Host: api.Groundspeak.com Content-Length: 66 --generateRequestHeader fullHttpRequest(1672ms): domain: api.Groundspeak.com port: 443 ssl: 1 openHttpConnection(969ms): GetIEProxySetting: RegistryQueryError: Das System kann die angegebene Datei nicht finden. ValueName: ProxyServer Failed to get key value valueName: ProxyServer Failed to read registry: CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Internet Settings/ProxyServer --GetIEProxySetting Opening connection directly to HTTP server. httpHostname: api.Groundspeak.com httpPort: 443 ssl: 1 bUsingHttpProxy: 0 httpProxyAuthMethod: socket2Connect(969ms): connect2(969ms): hostname: api.Groundspeak.com port: 443 ssl: 1 connectImplicitSsl(969ms): Clearing TLS client certificates. connectSocket(329ms): domainOrIpAddress: api.Groundspeak.com port: 443 connectTimeoutMs: 45000 connect_ipv6_or_ipv4(250ms): Multi-threaded domain to IP address resolution resolveHostname6(62ms): Resolving domain name (IPV4/IPV6)... --resolveHostname6 connecting to IPV4 address... ipAddress: 63.251.163.198 createSocket: Setting SO_SNDBUF size sendBufSize: 262144 Setting SO_RCVBUF size recvBufSize: 4194304 --createSocket connect(188ms): Waiting for the connect to complete... myIP: 192.168.178.24 myPort: 56899 socket connect successful. --connect --connect_ipv6_or_ipv4 --connectSocket clientHandshake(562ms): The client cert chain is NULL. cacheClientCerts: Cached TLS client certificates. Client cert chain is NULL. --cacheClientCerts clientHandshake2(562ms): readHandshakeMessages(188ms): processHandshakeRecord: processHandshakeMessage: processServerHello: negotiatedTlsVersion: TLS 1.2 negotiatedCipherSuite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 minAcceptableRsaKeySize: 1024 --processServerHello --processHandshakeMessage --processHandshakeRecord --readHandshakeMessages buildClientKeyExchange(31ms): buildClientKeyExchangeECDHE(31ms): verifyServerKeyExchange: verifyHash: keyType: Public hashInSize: 32 padding: PKCS v1.5 HashOid: 2.16.840.1.101.3.4.2.1 --verifyHash --verifyServerKeyExchange Verified server key exchange. generateNewKey_ecc(16ms): loadCurveByName: name: secp256r1 --loadCurveByName --generateNewKey_ecc loadSshPubKey: loadCurveByName: name: secp256r1 --loadCurveByName --loadSshPubKey --buildClientKeyExchangeECDHE --buildClientKeyExchange --clientHandshake2 --clientHandshake checkServerCert: Not verifying server certificate... Set the RequireSslCertVerify property to enable verification. --checkServerCert SSL/TLS Channel Established. --connectImplicitSsl --connect2 --socket2Connect Turning on TCP_NODELAY. socketOptions: SO_SNDBUF: 262144 SO_RCVBUF: 4194304 TCP_NODELAY: 1 SO_KEEPALIVE: 1 --socketOptions HTTPS secure channel established. --openHttpConnection connectTime: Elapsed time: 969 millisec startLine: POST /v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode HTTP/1.1 fullRequestHeader: requestHeader: Content-Type: application/json Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Content-Encoding: identity Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 Accept-Language: en-us,en;q=0.5 Authorization: Bearer eyJhbGciOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNobWFjLXNoYTI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiTWVnYWxvZG9uIiwicGdkIjoiYTFiMWNmNjItYmM1Ni00Mjc2LWI5NGMtNmNlMzMzNGRkY2I0IiwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiIxOTAyMDgyIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbIlB1YmxpYyIsIlByZW1pdW0iXSwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy91c2VyZGF0YSI6Ijc5Mjk2MjA0LTI3NzUtNDc1My1CMUQyLTUyQjk5NDE3RDNFNiIsImxnZCI6IjljNjAyMjJjLTIwZWQtNDI2Ny1iMTlhLWVkNzQ2MWRkZjY0NCIsInNjb3BlIjoiYXBpIiwibmJmIjoxNjM4NTk3MzMzLCJleHAiOjE2Mzg2MDA5MzMsImlzcyI6Imh0dHBzOi8vb2F1dGguZ2VvY2FjaGluZy5jb20vdG9rZW4iLCJhdWQiOiI3OTI5NjIwNC0yNzc1LTQ3NTMtYjFkMi01MmI5OTQxN2QzZTYifQ.TAaVBORarCjDtoqHMRMoAWKQrzTiXeoq9GGyI5QZcmU Accept-Encoding: gzip Cookie: ASP.NET_SessionId=jrkpndqknaxare1pzfxgua14 Host: api.Groundspeak.com Content-Length: 66 --fullRequestHeader computeRequestDataSize: Request body is in a memory buffer.. --computeRequestDataSize sendRequestHeader: sendHeaderElapsedMs: 0 --sendRequestHeader sendRequestBody: idleTimeoutMs: 45000 sendBodyElapsedMs: 0 --sendRequestBody readResponseHeader(265ms): responseHeader: HTTP/1.1 204 No Content CorrelationGuid: ea0e4a71-98ab-44b2-bd27-ff64fa7b2b8d X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1 X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=31536000; includeSubDomains Date: Sat, 04 Dec 2021 06:03:37 GMT --readResponseHeader statusCode: 204 statusText: No Content readResponseBody: bDiscard: 0 Response has no content-length. No response body to receive... --readResponseBody responseBodySize: 0 --fullHttpRequest originalUrl: https://api.Groundspeak.com:443/v1.0/geocaches/GC99DTZ/finalcoordinates?fields=referenceCode success: 1 --a_synchronousRequest success: 1 --fullRequest Success. --PostJson urlObject_loadUrl: --urlObject_loadUrl --ChilkatLog What is the problem here? Quote Link to comment
+Megalodon Posted December 10, 2021 Author Share Posted December 10, 2021 and it's still returning always false. Is there any chance we got it fixed this year? Quote Link to comment
+Surfoo Posted December 14, 2021 Share Posted December 14, 2021 Hello @Love! Do you think you could fix this bug? Quote Link to comment
+Bl4ckH4wkGER Posted December 22, 2021 Share Posted December 22, 2021 Your issue is that you are trying to query straight for a child parameter hasSolutionChecker but are not including the necessary parent parameter geocacheType to first narrow it down to Mystery Caches. If you make the right call, you will get the desired result. 1 1 Quote Link to comment
+Difool Posted December 22, 2021 Share Posted December 22, 2021 7 hours ago, Bl4ckH4wkGER said: Your issue is that you are trying to query straight for a child parameter hasSolutionChecker but are not including the necessary parent parameter geocacheType to first narrow it down to Mystery Caches. If you make the right call, you will get the desired result. He is asking the API for the cache GC99DTZ with the field hasSolutionChecker and gets the reply "false" even though the cache got a Solution Checker, referenceCode (GC99DTZ) is the only requirement. I don't see any other requirement in the documentation, and it worked until a few days before Magalodon's first post. 2 Quote Link to comment
+Megalodon Posted December 27, 2021 Author Share Posted December 27, 2021 That's exactly the point: "...it worked until a few days before Magalodon's first post." - it worked for more than the last past year, all the time. So the question is: What has been changed on the server side, maybe in the database?!!! This is not an acceptable answer or an explanation, why it is not working, but I will try to make a workaround. So, please, have a look, why the behavior of the API changed and repair it. 2 Quote Link to comment
+Megalodon Posted December 27, 2021 Author Share Posted December 27, 2021 The workaround is: $data = gcapi2("geocaches/$d_code?fields=referenceCode,geocacheType,hasSolutionChecker") I have to add 'geocacheType' in the API request, in order to get the CORRECT answer, if there is a soultion checker otherwise the return value is always 'false'. So only the question, why the behavior of ther API changed is open... and please change this in the API documentation. "it is required to add the field 'geocacheType' in the API call." 2 Quote Link to comment
+Megalodon Posted January 24, 2022 Author Share Posted January 24, 2022 is there any update planned of the API this year, I would suggest to return to the former option to be able to request the attribute 'hasSolutionChecker' without asking for the geocaching type. 1 1 Quote Link to comment
+Megalodon Posted February 14, 2022 Author Share Posted February 14, 2022 What for am I paying 30€ a year? For hidden boxes by other geocachers? For other people creating interesting mysteries, multies and so on? What about a solution, actually problem is the GC internal geochecker not working anymore... maybe for that somebody takes care of?! 1 Quote Link to comment
+The Leprechauns Posted February 15, 2022 Share Posted February 15, 2022 6 hours ago, Megalodon said: What for am I paying 30€ a year? I first started paying $30 a year for a premium membership in 2002. Back then, that got me a small number of pocket queries, access to PMO caches, and some bells and whistles here in these forums. I mainly paid $30 to support the website. There were no bookmark lists, no instant notifications, no premium mapping or search features, no favorite points, no Adventure Labs to create, no Waymarking categories to create, no smartphone apps and no API. Premium members now have all these things, plus other features. Yet, the cost remains constant at $30 per year. None of my other bills have remained unchanged since 2002. I find this amazing, especially since I would still be happy to pay the $30 for the 2002 feature set. So, that is what you are paying $30 a year for. By the way, the internal Geochecker continues to work just fine for me. I don't have a use case for leveraging the API for this purpose. I am not good enough at solving puzzles to have a need to use the Geochecker other than manually on the cache page. 1 Quote Link to comment
+Megalodon Posted February 15, 2022 Author Share Posted February 15, 2022 Quote I am not good enough at solving puzzles to have a need to use the Geochecker other than manually on the cache page. yes, that's YOU, but I want to use the API function in a self written macro, in order to check the coordinates again before I go outside and find the boxes... You also absolutely right, that constant was none of my other bills the past years.... but it is enough, just respect the number of premium geocachers... They only have to pay fpr the servers and their maintenance. and by the way: I would have introduced more and better stuff on the webpage during 20 yeras... Quote Link to comment
+sloth96 Posted May 11, 2022 Share Posted May 11, 2022 On 2/14/2022 at 10:11 PM, The Leprechauns said: I first started paying $30 a year for a premium membership in 2002. Back then, that got me a small number of pocket queries, access to PMO caches, and some bells and whistles here in these forums. I mainly paid $30 to support the website. There were no bookmark lists, no instant notifications, no premium mapping or search features, no favorite points, no Adventure Labs to create, no Waymarking categories to create, no smartphone apps and no API. Premium members now have all these things, plus other features. Yet, the cost remains constant at $30 per year. None of my other bills have remained unchanged since 2002. I find this amazing, especially since I would still be happy to pay the $30 for the 2002 feature set. So, that is what you are paying $30 a year for. By the way, the internal Geochecker continues to work just fine for me. I don't have a use case for leveraging the API for this purpose. I am not good enough at solving puzzles to have a need to use the Geochecker other than manually on the cache page. This is an interesting line of thought. How should people feel satisfied with what they pay? While the benefits of using the website have changed over time, the marketing has also changed. If someone signed up as a charter member should they expect less as they service was less developed when they bought in. Or should someone who thought the $30 was too much for the 2002 features be limited to the features of when they signed up? And then how do you handle users who would have decided the $30 was too much until they discovered a new feature was available? It is certainly an interesting question. With increased privacy rules, some features that people may have used are being removed for legal compliance. Should people receive a refund? As for other bills, should this be compared to life insurance which has generally gone down or utilties which have generally gone up? This all makes me glad I am not a product manager. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.