feat(pay): 新增小程序支付页面及相关隐私协议处理

- 新增支付页面组件,实现JSAPI支付流程和多状态页面展示
- 配置支付页面导航条样式和标题
- app.config.ts中添加支付页面路径
- app.tsx中新增微信隐私协议授权弹窗,拦截敏感API授权流程
- api/system/file中导出ensurePrivacyAuthorized用于隐私授权预检
- 登录页和注册页新增useDidShow钩子调用ensurePrivacyAuthorized预检隐私协议
- 登录和注册接口请求迁移至统一request封装,修正响应解构
- 支付流程中新增获取openid和自动登录逻辑,支持未注册用户跳转登录
- 支付成功后通知后端确认并自动跳转到已购产品页面
- 优化支付状态判断逻辑,正确识别支付和订单状态
- 添加错误处理和用户提示,提升支付体验安全性与稳定性
This commit is contained in:
2026-07-16 00:26:42 +08:00
parent 549e8258b6
commit ca78e73f51
7 changed files with 492 additions and 61 deletions

View File

@@ -54,11 +54,11 @@ const computeSignature = (accessKeySecret: string, canonicalString: string): str
}
/**
* 在调用涉及用户隐私的 APIchooseImage / chooseMedia / getLocation 等)前,
* 在调用涉及用户隐私的 APIchooseImage / chooseMedia / getLocation / getPhoneNumber 等)前,
* 等待用户完成微信隐私协议授权。基础库 3.16.1+ 强制要求,未授权会抛 errno:112。
* 旧基础库或不支持隐私协议的版本直接放行。
*/
const ensurePrivacyAuthorized = (): Promise<void> => {
export const ensurePrivacyAuthorized = (): Promise<void> => {
return new Promise((resolve) => {
const wxAny: any = Taro
if (typeof wxAny.requirePrivacyAuthorize !== 'function') {