何彬龙 vor 2 Jahren
Ursprung
Commit
0c4040b010
5 geänderte Dateien mit 23 neuen und 18 gelöschten Zeilen
  1. 6 5
      api_test.py
  2. 1 1
      config-test.toml
  3. 1 1
      config.toml
  4. 10 11
      src/router.rs
  5. 5 0
      src/sd_model.rs

+ 6 - 5
api_test.py

@@ -7,9 +7,10 @@ import pprint
 import datetime
 
 
-pay_url = "http://127.0.0.1:8848/pay"
-search_url = "http://127.0.0.1:8848/search"
-balance_url = "http://127.0.0.1:8848/balance"
+pay_url = "http://192.144.212.211:13657/pay"
+search_url = "http://192.144.212.211:13657/search"
+balance_url = "http://192.144.212.211:13657/balance"
+callback_url = "http://192.144.212.211:13657/callback"
 
 # 测试用 秘钥组1 脚本加密用
 pk1 = "04865e672fa71ab6e37429fd731800792c1015cf4e936bd01ec0092b7da571fb63cb99cca8104b35243175d3f535784f6127af451bed43b5b929db6b864de3b207"
@@ -105,8 +106,8 @@ def test_balance():
     print(result)
 
 
-# test_pay()
-# test_search()
+test_pay()
+test_search()
 test_balance()
 
 s = '''{\"HEADER\":{\"VERSION\":\"V1.1\",\"TIMESTAMP\":\"20230325132234425\",\"SEQNO\":\"1679721754404\",\"APPID\":\"jtceshi\",\"SECERTKEY\":\"3FF6CDABE28AFE275197768302AACBB4\"},\"MSGBODY\":{\"CONTENT\":{\"SIGN\":\"1FE2F722E6B4C4CD2CF458067A3A0EF9\",\"TIMESTAMP\":\"1679721754000\"}}}'''

+ 1 - 1
config-test.toml

@@ -1,4 +1,4 @@
-addr = "0.0.0.0:8848"
+addr = "0.0.0.0:13657"
 timeout = 5000
 
 [fscgConfig]

+ 1 - 1
config.toml

@@ -1,4 +1,4 @@
-addr = "0.0.0.0:8848"
+addr = "0.0.0.0:13657"
 timeout = 5000
 
 [fscgConfig]

+ 10 - 11
src/router.rs

@@ -322,17 +322,13 @@ pub(crate) mod balance {
 
 /// FSCG 回调
 pub(crate) mod callback {
-    use std::{fmt::Display, sync::Arc};
+    use std::{fmt::Display, sync::Arc, any};
 
     use anyhow::Context;
     use axum::{Extension, Json};
     use tracing::Instrument;
 
-    use crate::{
-        backend,
-        config::Config,
-        sd_model, Verify,
-    };
+    use crate::{backend, config::Config, sd_model, Verify};
 
     #[tracing::instrument(name="HandlerCallback", ret(Debug), fields(Request=?req), skip_all )]
 
@@ -382,12 +378,15 @@ pub(crate) mod callback {
 
         match serde_json::from_str::<sd_model::PubRespHead>(&callback_data)
             .context("serde_json::from_str::<sd_model::PubRespHead>")
-            .and_then(|o| serde_json::from_str(&o.data).context(""))
-        {
+            .and_then(|o| {
+                if o.code != "0000" {
+                    Err(anyhow::Error::msg(format!("PubRespHead: {}", callback_data)))
+                } else {
+                    serde_json::from_str(&o.data).context("CallbackRespBody")
+                }
+            }) {
             Ok(o) => Json(to_backend_callback_resp(o, req)),
-            Err(e) => {
-                Json(err_resp(e, "99", "请求错误", req, &config))
-            }
+            Err(e) => Json(err_resp(e, "99", "请求错误", req, &config)),
         }
     }
 

+ 5 - 0
src/sd_model.rs

@@ -581,10 +581,15 @@ impl<T> PubRespBody<T> {
 #[derive(serde::Serialize, serde::Deserialize, Debug)]
 #[serde(rename_all = "camelCase")]
 pub struct PubRespHead {
+    #[serde(default = "String::new")]
     pub code: String,
+    #[serde(default = "String::new")]
     pub msg: String,
+    #[serde(default = "String::new")]
     pub data: String,
+    #[serde(default = "String::new")]
     pub sign: String,
+    #[serde(default = "String::new")]
     pub request_id: String,
 }