Feature: specs/011-newebpay-payment/spec.md Date: 2026-06-22
端到端验证指南。实现完成后按此验证「下单 → 付款 → 订单已支付」主链路与回调安全。
updatesql/sql.md 中本期两段 DDL(pos_store_newebpay、pos_order_payment)。ruoyi-admin/src/main/resources/application.yml 已加 newebpay 段:
base-url: 测试环境用 https://ccore.newebpay.comnotify-url / return-url: 本机开发需用内网穿透(ngrok/frp)映射到本地 8082 端口的公网域名,如 https://xxx.ngrok-free.app/pay/newebpay/notify。MerchantID / HashKey / HashIV。4000-2211-1111-1111(成功卡)、有效日期/安全码按附录。MerchantID/HashKey/HashIV + 勾选启用支付方式(CREDIT/LINEPAY/APPLEPAY)→ 保存。last_verify_result=PASS;无效 → 提示「凭证无效」、状态不变。SELECT newebpay_status,is_enabled,enabled_payments FROM pos_store_newebpay WHERE store_id=? → status=2, is_enabled=1。POST /pay/newebpay/create?orderid={ddId}(带用户 token)。
data.gatewayUrl/MerchantID/TradeInfo/TradeSha/Version/EncryptType。pos_order_payment 新增一行(merchant_order_no=NB+ddId, pay_status=0);pos_order.pay_type=6、pay_url=gatewayUrl。pos_order.pay_status 由 0 → 1。pos_order_payment 写入 trade_no、pay_type=CREDIT、auth_code、pay_time、pay_status=1。/pay/newebpay/notify 一次。
pos_order_payment/日志记录「金额不一致」告警。pos_order_payment.pay_type 分别为 LINEPAY / APPLEPAY。注:Apple Pay 需 Apple Developer 配置与 HTTPS 域名验证;测试环境受限时可先验证信用卡 + LINE Pay,Apple Pay 在具备条件时补测。
POST /pay/newebpay/query?orderid={ddId}。运行 NewebPayEncryptUtil.main(实现时加入),用 NDNF §4.1 官方示例数据验证:
SHA256("HashKey={key}&{tradeInfoHex}&HashIV={iv}") 大写。MerchantID=MS127874575&RespondType=String&TimeStamp=...&Version=2.3&... 加密后 hex 可被蓝新测试环境接受(场景2 即端到端验证)。全部通过后方可进入场景1。