Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf(apps/extensions): set global alipay url for alipay extensions #892

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from

Conversation

Gkirito
Copy link
Contributor

@Gkirito Gkirito commented Oct 18, 2023

Maybe most sspanel be deployed on the server whose location is not the mainland, therefore use the global Alipay URL

@@ -15,6 +15,7 @@ def __init__(self):
alipay_public_key_string=settings.ALIPAY_PUBLIC_KEY_STRING,
config=AliPayConfig(timeout=3),
)
self.alipay._gateway = "https://globalopenapi.alipay.com/gateway.do"
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we need to set this manually? it seems that _gateway is pravite var in the pkg alipay.AliPay

check the inner code

        if debug:
            # self._gateway = "https://openapi.alipaydev.com/gateway.do"
            self._gateway = "https://openapi-sandbox.dl.alipaydev.com/gateway.do"
        else:
            self._gateway = "https://openapi.alipay.com/gateway.do"

Copy link
Contributor Author

@Gkirito Gkirito Oct 20, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I requested the debug URL and default URL from a server located in Japan, but it timed out.
image

image-20231020jlVKnWYB@2x

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The IP locations of these two queries indicate that they are from Hangzhou.
image

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

request to https://openapi.alipay.com/gateway.do timeout in jp server means u server was blocked by ALiPay or GFW, since this is not a common case, i don't think we should hardcode global endpoint

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But I asked a friend of Ant Company, and he said that foreign countries generally use the global interface.
The two URLs in the Alipay package are generally only used in China.
Btw, the two URLs requested by my Japanese server are not always timed out, and occasionally can be requested, so it is not blocked, it means the routing is too bad.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And global URL was offerted by my friend. I didn't find this URL in the Chinese document. It be found in the doc of Alipay Plus.
DOC

Copy link
Owner

@Ehco1996 Ehco1996 Oct 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are you saying that we should use https://openapi.alipay.com/gateway.do in CN but use https://globalmapi.alipay.com/gateway.do in other countries ?

if so hardcode to https://globalmapi.alipay.com/gateway.do is not a good option, consider if someone deploy panel on a CN server? IMO, a better approach would be to provide a config item for user and set the default gateway to CN.

TBH, switching gateway should be handled in lib and not caller (this is a internal var), how about opening an issiue in https://github.com/fzlee/alipay and dissicuss how to impl this feature?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TBH, switching gateway should be handled in lib and not caller (this is a internal var), how about opening an issiue in https://github.com/fzlee/alipay and dissicuss how to impl this feature?

Good idea !!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants