weicw-dshsa
|
755866e28b
|
revert: PC 支付宝改回电脑网站支付(自提交表单跳转)
配合后端把支付宝默认渠道改回电脑网站支付(当面付需单独签约并提交
资料审核,实测被网关以 ACQ.ACCESS_FORBIDDEN 拒绝)。
改动(tender/pay.vue 收银台 + template-07/BuyDocument.vue 购标流程):
- 恢复 alipayForm 这套处理:后端返回自提交表单时用 document.write
写进新窗口跳转支付宝收银台,原页面留在原标签页继续轮询查单;
弹窗被拦截时给出可行动提示,按钮可重试。
- 模板恢复「表单」与「二维码」两支:支付宝走表单、微信走 codeUrl。
- 切换支付方式时把两种产物都清掉,避免上一支的残留留在页面上。
- 文件头注释同步:微信出码、支付宝跳转。
前端不传 payType 之外的值即可——裸 alipay 现在由后端解析为网页支付,
所以「微信支付 / 支付宝」选择器保持不变。
验证:eslint 0 error;npm run build:dev 通过。
|
2026-09-21 21:49:28 +08:00 |
|
weicw-dshsa
|
1b4dbda28e
|
feat: PC 两处支付入口的支付宝统一改为扫码出码(与微信交互一致)
用户选择:PC 不再跳支付宝账单页,改为像微信一样直接出一张二维码。
此前 PC(收银台 + 购标流程)走电脑网站支付(自提交表单 + 跳转),
H5 走扫码,两个渠道两种交互。
改动:
- tender/pay.vue 与 template-07/BuyDocument.vue 删除自提交表单整套逻辑
(alipayForm 状态、openAlipayForm 的 document.write、弹窗拦截兜底、
模板里的「前往支付宝付款」分支)——两个渠道现在都是 codeUrl 出码,
渲染与轮询完全复用同一套。
- 支付宝提交 payType=alipay(裸值),由后端按默认渠道(当面付扫码)下单。
- 两处文件头注释同步:支付宝默认当面付,与微信 Native 同一交互。
不改的部分:
- 后端本就两条路都实现(precreate / page.pay),本次只翻转默认,
网页支付保留为显式 alipay_page / alipay_web 的可选路径——
扫码签约「当面付」、网页支付签约「电脑网站支付」,是不同的产品签约,
留一条备用便于按实际签约情况切换,不必改代码。
- H5 原本就是扫码(显式 alipay_qr),行为不变。
验证:eslint 0 error;npm run build:dev 通过。
|
2026-09-20 21:16:07 +08:00 |
|
weicw-dshsa
|
eee3be2651
|
docs: ADR 引用改指 0010(0008/0009 已被占用,见 ADR 0010 的编号说明)
|
2026-09-20 19:25:00 +08:00 |
|
weicw-dshsa
|
31f2f07c5c
|
feat: 收银台支持支付宝支付(微信/支付宝选择器)
PC 收银台此前硬编码「请使用微信扫码支付」,只能走微信 Native。
改动:
- 支付方式选择器(微信支付 / 支付宝),切换即重新发起支付并清掉上一张码——
同一订单号换支付类型重复下单会被渠道拒(微信回 OUT_TRADE_NO_USED),
两种支付信息同时留在页面上只会让用户困惑。
- 支付宝走电脑网站支付:后端返回自提交表单,用 document.write 写进新窗口。
刻意不用 v-html——它插入的脚本标签不会执行(HTML 规范如此),
表单永远不会自动提交。原收银台页留在原标签页继续轮询查单。
- 弹窗被拦截时给出可行动提示,并保留「前往支付宝付款」按钮兜底。
- 回到一张曾用支付宝发起过的待支付订单时,默认选中支付宝,
避免又拿微信去撞一次「订单号已使用」。
- useHjcPayStatus 增加 channel 参数,仅供提示文案说对「微信侧/支付宝侧」。
**状态词表不变**——后端已把两个渠道的状态映射成渠道无关的 PaymentStatus,
前端再加一份支付宝词表等于把渠道知识泄漏进 UI。顺带把这层理由写进注释。
- 修正代码注释里对 ADR 0009 的引用:工作区 docs/adr 下并没有这一篇,
相关决策现记录在 ADR 0008。
验证:eslint 0 error;npm run build:dev 构建通过。
|
2026-09-20 19:18:02 +08:00 |
|
weicw-dshsa
|
a7399e0624
|
feat(tender): 我的订单加「去支付」「取消订单」入口,并新建收银台
hjc-web 此前**没有收银台**——支付步骤内嵌在购标流程(BuyDocument 的 step='pay')里,
买家一旦离开就再也回不到未完成的支付。本提交补上按订单号付款的独立页面。
- 新建 /tender/pay 收银台:只认订单号,金额取自**订单本身**(by-no)而非支付响应
(支付一失败页面就会停在 0.00);进入先判状态,已支付/已取消/已退款**不发**统一下单,
就地显示结论——既无意义,也会多撞一次跨端 OUT_TRADE_NO_USED
- 订单列表:待支付卡片加两个按钮 + 手搓 Tailwind 二次确认弹窗(照 ConsultDialog 的风格,
不用 antd 的 Modal:买家页无先例,视觉与站点自建风格不一致)
- 状态口径改读 orderStatus(原先只看 payStatus,取消后会把已取消显示成「待支付」
并带上「去支付」),抽 app/utils/orderStatus.ts,与 hjc-h5 刻意保持同一套优先级
- 新增两个 Nitro 代理 order-by-no.get.ts / cancel.post.ts,照既有 my-orders / pay-status
的范式原样透传 ApiResult
- 标书详情「购买人数」改读 buyerCount(后端实时统计的已付款订单数)
- 跨端 OUT_TRADE_NO_USED:识别后端回带的 data.wechatCode 并给可行动提示,
不匹配 message 字符串(包装方式一改就会静默失效)
|
2026-09-17 03:39:59 +08:00 |
|