背景:通过领取会员卡打开白屏,如图2
目前发现安卓和ios14以上可以正常打开,ios18打开白屏
排查代码发送调用链路:
1、https://api.weixin.qq.com/card/membercard/activate/geturl
2、接口1返回的url原封不动的调用https://api.weixin.qq.com/cgi-bin/message/custom/send,url没有做过任何urlencode或urldecode动作
调用接口https://api.weixin.qq.com/card/membercard/activate/geturl响应如下:
{"errcode":0,"errmsg":"ok","url":"https:\/\/mp.weixin.qq.com\/bizmall\/activatemembercard?action=preshow&&encrypt_card_id=jtuq%2BUvYRK%2BE5VJsbL814Mo0cMf%2BjoSvKWehHarcHfogFb4HWZoANwSL7alu7xfF&outer_str=eyJjbGllbnQiOiIxMDAwMTkwMiIsImNyb3BJZCI6Ind3ZjEzZDdkMzRjMDNkZTg4NyIsImV4dGVybmFsVXNlcklEIjoid21uN1FyQmdBQVdrWG1hOFhxSnBMR0xYSWJ6OXhiQkEiLCJvcmdDb2RlIjoiMTAwMDAwIiwic3RvQ29kZSI6IjEwMDM4IiwidXNlcklkIjoiMTE1OSIsInd3VXNlcklkIjoiTGlKaW5ZYW4ifQ%3D%3D&biz=Mzg5NjU3NDcxMw%3D%3D#wechat_redirect"}
排查能打开的URL区别在于:encrypt_card_id urldecode
可以打开的:encrypt_card_id=jtuq%2BUvYRK%2BE5VJsbL814Mo0cMf%2BjoSvKWehHarcHfogFb4HWZoANwSL7alu7xfF
不可以打开的:encrypt_card_id=jtuq+UvYRK+E5VJsbL814Mo0cMf+joSvKWehHarcHfogFb4HWZoANwSL7alu7xfF
2025.11.4 做了https:\/\/mp.weixin.qq.com\/bizmall\/activatemembercard?action=preshow&&encrypt_card_id=jtuq%2BUvYRK%2BE5VJsbL814Mo0cMf%2BjoSvKWehHarcHfogFb4HWZoANwSL7alu7xfF&outer_str=eyJjbGllbnQiOiIxMDAwMTkwMiIsImNyb3BJZCI6Ind3ZjEzZDdkMzRjMDNkZTg4NyIsImV4dGVybmFsVXNlcklEIjoid21uN1FyQmdBQVdrWG1hOFhxSnBMR0xYSWJ6OXhiQkEiLCJvcmdDb2RlIjoiMTAwMDAwIiwic3RvQ29kZSI6IjEwMDM4IiwidXNlcklkIjoiMTE1OSIsInd3VXNlcklkIjoiTGlKaW5ZYW4ifQ%3D%3D&biz=Mzg5NjU3NDcxMw%3D%3D#wechat_redirect 的urldecode 导致所有设备无法打开
2025.11.5 做了encrypt_card_id urldecode,也导致所有设备无法访问
总结:IOS 18做encrypt_card_id urlencode感觉可以解决问题。但其它系统版本可能会出现无法访问的问题

意思是通过https://api.weixin.qq.com/card/membercard/activate/geturl接口获取的url,给url中的encrypt_card_id单独做urldecode处理?