-
Notifications
You must be signed in to change notification settings - Fork 235
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
热更新config配置 #202
Comments
能否提供对外删除config的api。因为配置错误在支付api调用过程中可以感知,也就是在支付出现异常时,可以清理错误配置。 |
有 |
为什么这么设计呢? |
这样设计的原因是我们商户配置管理功能目前不能提供证书配置正确与否的校验,因为财务等的要求以及和其他系统之间的数据平衡,所以我们不能直接通过支付一笔来验证配置,而我们的商户信息证书等信息都是从各个地市收集上来的,数据经过excel转换,字符错误,换行符空格等,这些管理要求,我们没法改变,所以导致配置的错误率很高。所以我们的支付过程中一般存在问题,绝大多数情况下都是配置错误,所以我们就一刀切的做了这样一种选择,只要存在支付错误就清理内存config对象 |
不需要单独的检查API,下载微信支付平台证书验证配置是否正确即可。 计划在构造 Config 时,如果不能下载平台证书,就尽早地报错。这样也符合“快速失败”的API设计原则。 |
妙啊,这样确实更合理,期待新版本 |
您的功能请求与问题有关吗? 请描述您遇到的问题
描述您想要的解决方案
config对象自己实现,AbstractAutoCertificateProvider也要自己实现一个
![image](https://private-user-images.githubusercontent.com/6671717/252840089-bf6ca0df-c065-48bb-ab78-7aad16f78c2d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NzEyMDQsIm5iZiI6MTczOTQ3MDkwNCwicGF0aCI6Ii82NjcxNzE3LzI1Mjg0MDA4OS1iZjZjYTBkZi1jMDY1LTQ4YmItYWI3OC03YWFkMTZmNzhjMmQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTNUMTgyMTQ0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9OTAxNTViOWQ2ZGFlNThhYzJiYjM0ZThiZGU5MmM1OWNkNjYyYWQ4NGEzNWJkNmJhZTY4NTBjNTlmNDRmYjEzMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.piuXZumhbxDxgbM6RkLVMfTTWjT0rcNpbbYxHacNB5s)
![image](https://private-user-images.githubusercontent.com/6671717/252840253-f0341cbe-3770-4d77-a156-cd6d0f16e139.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NzEyMDQsIm5iZiI6MTczOTQ3MDkwNCwicGF0aCI6Ii82NjcxNzE3LzI1Mjg0MDI1My1mMDM0MWNiZS0zNzcwLTRkNzctYTE1Ni1jZDZkMGYxNmUxMzkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTNUMTgyMTQ0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDYzMDkwODkwOTQ3YTU3NTVkODgxOWU3MTJhNjAzZGY0NWNiNTQwZDQ3MWUxNTAyZTI3NDA0Y2FlNzdjZDllMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.hzrq8o57mmGDiaH3qAW8LN6hU8JBnUOtNmarsXnFtEs)
RSACertificateConfig是我们config的实现
核心是build使用我们重写provider
config创建时,判断当前config在内存中是否存在,如果不存在再创建。
![image](https://private-user-images.githubusercontent.com/6671717/252838914-f582731a-5a8f-4203-adc7-268f0a521649.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NzEyMDQsIm5iZiI6MTczOTQ3MDkwNCwicGF0aCI6Ii82NjcxNzE3LzI1MjgzODkxNC1mNTgyNzMxYS01YThmLTQyMDMtYWRjNy0yNjhmMGE1MjE2NDkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTNUMTgyMTQ0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MWVjMzUyZjFlZGUwNmJlZWFjYzg5OTgyNzk2YzNmZGFhNTA3ZTVmNmY5ZjQzODcyNDA2MTI5NWFkMDIyM2VkNyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.cRvCLjr_m6y7CHTy7AkACx4XF-tDVMr0ojTvXgkYF58)
![image](https://private-user-images.githubusercontent.com/6671717/252839096-b9e468a2-84bf-4a7e-be9f-8cec2e3fbdcc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NzEyMDQsIm5iZiI6MTczOTQ3MDkwNCwicGF0aCI6Ii82NjcxNzE3LzI1MjgzOTA5Ni1iOWU0NjhhMi04NGJmLTRhN2UtYmU5Zi04Y2VjMmUzZmJkY2MucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTNUMTgyMTQ0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NTNiZTNkMjA5ZTFkMjE2OTIyYzBiYzgzNDkzZmI0Yzc4ZDUzMmFjNGE1ZmMwZGYyZWQwMjgyYzM5NzEyMDI1OSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.V6F2ufwnKYMnAjXJPuLL3tLKYwDfqpvMxH-7NpG8OVE)
![image](https://private-user-images.githubusercontent.com/6671717/252839307-acd43a41-12d6-4db6-a97e-25350be559f1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NzEyMDQsIm5iZiI6MTczOTQ3MDkwNCwicGF0aCI6Ii82NjcxNzE3LzI1MjgzOTMwNy1hY2Q0M2E0MS0xMmQ2LTRkYjYtYTk3ZS0yNTM1MGJlNTU5ZjEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDIxMyUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTAyMTNUMTgyMTQ0WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZWJhODEwMmE0MDI4MzVkZTNiYzg3YTk3ZmU2Mjc5NjA0NjFlYjIzYjZkM2U2ZmQ1ODBkOTEzZGVmNDJjY2YwOSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.Lyq8eDrcIFA3Dt2sIUIGgbh-U9wIfw-EJMH6ADDdmdA)
RSACertificateProvider对象是我们继承AbstractAutoCertificateProvider并增加一个map来存储商户和config的关系。
getRSACertificateConfig 方法实现如下
您还有其他的方案吗?
No response
其他信息
sdk版本:wechatpay-java:0.2.5
The text was updated successfully, but these errors were encountered: