Code Monkey home page Code Monkey logo

Comments (9)

richzw avatar richzw commented on July 29, 2024 1

One more thing, The verifyReceipt API has been deprecated as of 5 Jun 2023. Please use App Store Server API instead.

from go-iap.

richzw avatar richzw commented on July 29, 2024

@MissWho Here are some questions

  1. What is the status of the response of httpCli.Do on the sandbox envrionment?

When I replaced another library, the returned data was normal

  1. Could you please tell us some details of the other library? like github repo?

  2. Any more details of the request could be helpful for us to debug this issue.

from go-iap.

MissWho avatar MissWho commented on July 29, 2024

@MissWho Here are some questions

  1. What is the status of the response of httpCli.Do on the sandbox envrionment?

When I replaced another library, the returned data was normal

  1. Could you please tell us some details of the other library? like github repo?
  2. Any more details of the request could be helpful for us to debug this issue.

Sorry for waiting for a long time. After multiple checks, it seems to be a resp The incomplete data returned by Body resulted in JSON parsing failure with error code EOF. After adding my own debugging code, the file written to the disk was legal and the data could be parsed normally

file:appstore\validator.go 188line

image
1695652110848
1695652379062

from go-iap.

richzw avatar richzw commented on July 29, 2024

@MissWho Thank you for your response. The invalid response JSON data caused the JSON Decode failure, and the invalid JSON data with EOF returned from the test URL. Please correct me if something was misunderstanding.

from go-iap.

MissWho avatar MissWho commented on July 29, 2024

@richzw How could EOF occur in the data returned by Apple's server? My own test code using json.Unmarshal can decode it successfully, but when using the original json.NewDecoder, it throws an EOF error. I'm using the same body in both cases. If it weren't for the inclusion of sensitive information, I would have sent you the test code already. I need your help in investigating this issue, as I'm starting to doubt whether it's a problem with my code.

from go-iap.

richzw avatar richzw commented on July 29, 2024

@MissWho Sorry for misunderstanding of your previous response.

Let's double-check the following

  1. The status code of the test URL is 200?

  2. The response body could be parsed by json.Unmarshal successfully, but failed by json.NewDecoder(resp.Body).Decode(result) and the error is EOF. Namely, the following codes

	buf, err := io.ReadAll(resp.Body)
	if err != nil {
		return 0, err
	}

	err = json.Unmarshal(buf, &result)
	if err != nil {
		return 0, err
	}

could parse the response body successfully.

  1. Could you please share the response data under compliance requirements? We could do some further investigation. Thanks in advance.

from go-iap.

MissWho avatar MissWho commented on July 29, 2024
  1. HTTP response code is 200.
  2. The data could be successfully parsed before adding it to json.newdecoder using the provided code.
  3. Please wait while I organize the request response.

However, there's still a very peculiar issue: if I execute the validation request separately within the main function, this problem doesn't occur. My current application scenario is within a web service's API. There are still many factors contributing to this issue.

from go-iap.

kaijietti avatar kaijietti commented on July 29, 2024

image
you have already read resp.Body, which is a ReadCloser.
Check examples: https://go.dev/play/p/bWjUpqTD7J_0 and https://go.dev/play/p/RJcDug1ecG2

from go-iap.

richzw avatar richzw commented on July 29, 2024

@MissWho , If the resp.Body was read more than once, the error EOF could come up.

from go-iap.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.