_lsy-refund-unlock.txt 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. ── 前置:读第一轮的补录句柄 ──
  2. 补录乐收赢订单号 = 200001070J1226092816241610001
  3. 真实被扫失败单 = 200001070X3126092816241710003
  4. ==============================================================================
  5. 【0】先钉一件事:queryorder 的 FAIL 应答 sign 覆盖哪几个字段
  6. ==============================================================================
  7. 非 null 字段 = ['return_code', 'return_msg']
  8. 重算 == 上游 : True
  9. ⇒ 这两条 FAIL 的 sign 是**常量**(换单号、换 query_trace_no 都不变)
  10. ==============================================================================
  11. 【1】假设 R1:换 channel_type 补录(各一条),再试退款
  12. ==============================================================================
  13. POST /v3/createSupply -> 59 B rc=500 ec={} 无sign键
  14. msg = 商户未配置该通道
  15. POST /v3/createSupply -> 59 B rc=500 ec={} 无sign键
  16. msg = 商户未配置该通道
  17. POST /v3/createSupply -> 168 B rc=None ec=None 无sign键
  18. msg = None
  19. POST /v3/createSupply -> 76 B rc=200 ec=200001070J1226092816253210006 无sign键
  20. msg = 操作成功
  21. ch=50(平安) 订单号 = 200001070J1226092816253210006
  22. POST /v3/createSupply -> 59 B rc=500 ec={} 无sign键
  23. msg = 商户未配置该通道
  24. ==============================================================================
  25. 【2】每笔补录用 queryorder 复核(必须 PAY_SUCCESS 才值得往下退)
  26. ==============================================================================
  27. !! 未完成 q-supply-ch50: TimeoutError('The read operation timed out')
  28. 查到 PAY_SUCCESS 的:[]
  29. ==============================================================================
  30. 【3】假设 R1:同一套寻址键(pay_trace_no+pay_trace_time),只换渠道
  31. ==============================================================================
  32. ── ch=50(平安) ──
  33. !! 未完成 refund-ch50-bytrace: TimeoutError('The read operation timed out')
  34. ==============================================================================
  35. 【4】假设 R2:换寻址键为 trade_no(含第一轮那笔建行补录)
  36. ==============================================================================
  37. ── trade_no = 200001070J1226092816241610001 ch=37(一轮建行) ──
  38. POST /v3/refundorder -> 462 B rc=SUCCESS ec=PAY_FAIL 验签OK(11)
  39. msg = 退款失败:没有查询到符合条件的记录。
  40. ==============================================================================
  41. 【5】/v3/queryrefund 两条寻址路(第一轮 bytrace 挂在我把 refund_time 填错)
  42. ==============================================================================
  43. 第一轮那条退款:refund_no=092816242010004 refund_trace_no=rf162420b076a3
  44. 它回显的 pay_time(=发起退款的时间)= 20260928162420 ← 这才是 refund_time 该填的值
  45. POST /v3/queryrefund -> 649 B rc=SUCCESS ec=PAY_IN_PROCESS 验签OK(14)
  46. msg = 查询失败:商户号[105000851370940]已注销或待审核
  47. POST /v3/queryrefund -> 649 B rc=SUCCESS ec=PAY_IN_PROCESS 验签OK(14)
  48. msg = 查询失败:商户号[105000851370940]已注销或待审核
  49. ==============================================================================
  50. 【6】/v3/cancelorder —— 拿一笔**真实的被扫 PAY_FAIL 单**(文档:支付失败会关单)
  51. ==============================================================================
  52. POST /v3/cancelorder -> 214 B rc=FAIL ec=None 验签OK(2)
  53. msg = 暂不支持撤销!
  54. POST /v3/queryorder -> 618 B rc=SUCCESS ec=PAY_FAIL 验签OK(16)
  55. msg = 支付失败
  56. ==============================================================================
  57. 【7】对**已关单**的 H5 单退款(第一轮 closeorder 已把它关了)
  58. ==============================================================================
  59. H5 单 trade_no = 200001070X4326092816241610002(已被 /v3/closeorder 关闭)
  60. POST /v3/refundorder -> 306 B rc=FAIL ec=None sign=null
  61. msg = 订单信息不存在!
  62. ==============================================================================
  63. 【8】/v3/createSupply function_flag=2(补录退款订单)—— 直接造一条退款记录
  64. ==============================================================================
  65. POST /v3/createSupply -> 76 B rc=200 ec=200001070J1226092816263510009 无sign键
  66. msg = 操作成功
  67. ==============================================================================
  68. 汇总(14 条)
  69. ==============================================================================
  70. tag path rc/ec note
  71. supply-ch6 /v3/createSupply 500/{} 商户未配置该通道; 无sign键
  72. supply-ch1 /v3/createSupply 500/{} 商户未配置该通道; 无sign键
  73. supply-ch2 /v3/createSupply None/None None; 无sign键
  74. supply-ch50 /v3/createSupply 200/200001070J1226092816253210006 操作成功; 无sign键
  75. supply-ch4 /v3/createSupply 500/{} 商户未配置该通道; 无sign键
  76. q-supply-ch50 /v3/queryorder TRANSPORT_ERR TimeoutError('The read operation timed out')
  77. refund-ch50-bytrace /v3/refundorder TRANSPORT_ERR TimeoutError('The read operation timed out')
  78. refund-tradeno-610001 /v3/refundorder SUCCESS/PAY_FAIL 退款失败:没有查询到符合条件的记录。; 验签OK(11)
  79. qrefund-bytrace-fixed /v3/queryrefund SUCCESS/PAY_IN_PROCESS 查询失败:商户号[105000851370940]已注销或待审核; 验签OK(14)
  80. qrefund-byno-again /v3/queryrefund SUCCESS/PAY_IN_PROCESS 查询失败:商户号[105000851370940]已注销或待审核; 验签OK(14)
  81. cancel-barcode-bytradeno /v3/cancelorder FAIL/None 暂不支持撤销!; 验签OK(2)
  82. q-barcode-aftercancel /v3/queryorder SUCCESS/PAY_FAIL 支付失败; 验签OK(16)
  83. refund-closed-h5 /v3/refundorder FAIL/None 订单信息不存在!; sign=null
  84. supply-flag2 /v3/createSupply 200/200001070J1226092816263510009 操作成功; 无sign键