MaxKingPor před 2 roky
rodič
revize
5b274b729f
5 změnil soubory, kde provedl 19 přidání a 14 odebrání
  1. 3 0
      .vscode/settings.json
  2. 1 1
      config-test.toml
  3. 1 1
      config.toml
  4. 3 5
      src/gmssl.rs
  5. 11 7
      src/sd_model.rs

+ 3 - 0
.vscode/settings.json

@@ -0,0 +1,3 @@
+{
+    "cmake.sourceDirectory": "/home/king/project/sd-proxy/GmSSL"
+}

+ 1 - 1
config-test.toml

@@ -1,6 +1,6 @@
 addr = "0.0.0.0:13657"
 timeout = 5000
-dateSource = "mysql://root:nibuzhidaowozhidao@47.108.88.0:8999/ry_vue"
+dateSource = "mysql://bizuser:PuVqOWuLLDFJ3fjU@127.0.0.1/fmp"
 
 [fscgConfig]
 payUrl = "http://192.144.212.211:36000/gateway/flowservice/makeorder.ws"

+ 1 - 1
config.toml

@@ -1,6 +1,6 @@
 addr = "0.0.0.0:13657"
 timeout = 5000
-dateSource = "mysql://root:nibuzhidaowozhidao@47.108.88.0:8999/ry_vue"
+dateSource = "mysql://bizuser:PuVqOWuLLDFJ3fjU@127.0.0.1/fmp"
 
 [fscgConfig]
 payUrl = "http://192.144.212.211:36000/gateway/flowservice/makeorder.ws"

+ 3 - 5
src/gmssl.rs

@@ -124,9 +124,9 @@ pub mod sm2 {
             unsafe {
                 let data = data.as_ref();
                 let len = data.len();
-                if !(1..=255).contains(&len) {
-                    return Err(anyhow::Error::msg("sm2_encrypt error 数据长度错误"));
-                }
+                // if !(1..=255).contains(&len) {
+                //     return Err(anyhow::Error::msg("sm2_encrypt error 数据长度错误"));
+                // }
 
                 let mut out = std::mem::zeroed();
                 let ffi_r = sm2_do_encrypt(self, data.as_ptr(), len, &mut out);
@@ -278,7 +278,6 @@ pub mod sm2 {
             let r = key.decrypt(data, PassOrder::C1C3C2).unwrap();
             let r = String::from_utf8(r).unwrap();
             println!("key.decrypt {}", r);
-
         }
 
         #[test]
@@ -288,6 +287,5 @@ pub mod sm2 {
             let sk = key.get_sk();
             println!("\npk: {pk}\nsk: {sk}")
         }
-
     }
 }

+ 11 - 7
src/sd_model.rs

@@ -47,9 +47,8 @@ where
 impl crate::Verify for PubReqHead {
     #[tracing::instrument(skip_all, fields(PubReqHead=?self))]
     fn verify(&self, config: &Config) -> anyhow::Result<()> {
-        if self.sign_type != "md5"
-            || self.app_id != config.sd_config.app_id
-            || self.method != "sd.tovc.recharge"
+        if self.sign_type != "md5" || self.app_id != config.sd_config.app_id
+        // || self.method != "sd.tovc.recharge"
         {
             return Err(anyhow::Error::msg("PubReqHead Verify Value Error"));
         }
@@ -478,13 +477,18 @@ impl crate::Verify for SearchReqBody {}
 pub struct SearchRespData {
     state: String,
     message: String,
+    #[serde(skip_serializing_if = "Option::is_none")]
     success_time: Option<String>,
     order_id: String,
     sp_order_id: String,
     game_user_id: String,
+    #[serde(skip_serializing_if = "Option::is_none")]
     operator_order: Option<String>,
-    card_no: Option<String>,        // 卡密
-    card_pwd: Option<String>,       // 卡密
+    #[serde(skip_serializing_if = "Option::is_none")]
+    card_no: Option<String>, // 卡密
+    #[serde(skip_serializing_if = "Option::is_none")]
+    card_pwd: Option<String>, // 卡密
+    #[serde(skip_serializing_if = "Option::is_none")]
     effective_time: Option<String>, // 卡密
 }
 
@@ -505,9 +509,9 @@ impl SearchRespBody {
             }
         };
         if resp.rcode != "00" {
-            let rcode = if resp.rcode=="06"{
+            let rcode = if ["06", "10"].contains(&resp.rcode.as_str()) {
                 "0011"
-            }else{
+            } else {
                 &resp.rcode
             };
             return Self::error(rcode, format!("{:?}", resp.rmsg));