Stripe成功URL含带空格product.name时报错的解决方案求助
解决Stripe success_url含空格参数的报错问题
在配置Stripe的success_url时,添加product.email、product.quantity、product.amount这类参数都能正常返回数据,但加入product.name后就会报错。测试发现移除product.name里的空格就恢复正常,但需要保留空格实现功能。
当前正常运行代码:
success_url: `${YOUR_DOMAIN}/success/${product.email}/${product.quantity}/${product.amount}`,
期望修改为:
success_url: `${YOUR_DOMAIN}/success/${product.name}/${product.email}/${product.quantity}/${product.amount}`,
解决方法
URL中不能直接包含空格,需要对product.name做URL编码处理,使用JavaScript的encodeURIComponent()函数即可:
修改后的代码:
success_url: `${YOUR_DOMAIN}/success/${encodeURIComponent(product.name)}/${product.email}/${product.quantity}/${product.amount}`,
原理说明
encodeURIComponent()会把空格转换成%20,其他特殊字符也会被转成URL安全的格式,这样Stripe可以正确解析参数。当你在success页面接收这个参数时,再用decodeURIComponent()就能还原出带空格的原始产品名称。
内容的提问来源于stack exchange,提问作者f180111 Yousaf Zahid
相关产品推荐
相关产品推荐

