簡體   English   中英

“突變”類型的字段上的未知參數

[英]Unknown argument on field of type “Mutation”

我正在研究 laravel、magento 和 graphql。 我正在嘗試使用突變來獲取數據並發送到 api。

我得到以下錯誤 -

{#321
  +"errors": array:8 [
    0 => {#301
      +"message": "Unknown argument "card_num" on field "pxFusionPostRequest" of type "Mutation"."
      +"extensions": {#304
        +"category": "graphql"
      }
      +"locations": array:1 [
        0 => {#307
          +"line": 2
          +"column": 25
        }
      ]
    }
    1 => {#305
      +"message": "Unknown argument "nme_card" on field "pxFusionPostRequest" of type "Mutation"."
      +"extensions": {#259
        +"category": "graphql"
      }
      +"locations": array:1 [
        0 => {#302
          +"line": 2
          +"column": 46
        }
      ]
    }
    2 => {#292
      +"message": "Unknown argument "ex_mnth" on field "pxFusionPostRequest" of type "Mutation"."
      +"extensions": {#291
        +"category": "graphql"
      }
      +"locations": array:1 [
        0 => {#294
          +"line": 2
          +"column": 67
        }
      ]
    }
    3 => {#306
      +"message": "Unknown argument "ex_yr" on field "pxFusionPostRequest" of type "Mutation"."
      +"extensions": {#299
        +"category": "graphql"
      }
      +"locations": array:1 [
        0 => {#308
          +"line": 2
          +"column": 86
        }
      ]
    }
    4 => {#309
      +"message": "Unknown argument "cvc2" on field "pxFusionPostRequest" of type "Mutation"."
      +"extensions": {#310
        +"category": "graphql"
      }
      +"locations": array:1 [
        0 => {#311
          +"line": 2
          +"column": 101
        }
      ]
    }
    5 => {#312
      +"message": "Unknown argument "action" on field "pxFusionPostRequest" of type "Mutation"."
      +"extensions": {#313
        +"category": "graphql"
      }
      +"locations": array:1 [
        0 => {#314
          +"line": 2
          +"column": 114
        }
      ]
    }
    6 => {#315
      +"message": "Unknown argument "dps_px_pay" on field "pxFusionPostRequest" of type "Mutation"."
      +"extensions": {#316
        +"category": "graphql"
      }
      +"locations": array:1 [
        0 => {#317
          +"line": 2
          +"column": 131
        }
      ]
    }
    7 => {#318
      +"message": "Unknown argument "session_id" on field "pxFusionPostRequest" of type "Mutation"."
      +"extensions": {#319
        +"category": "graphql"
      }
      +"locations": array:1 [
        0 => {#320
          +"line": 2
          +"column": 156
        }
      ]
    }
  ]
}

這是我在 magento 中的 graphql -

type Mutation {

    pxFusionPostRequest(input: PxFusionRequestData): String @resolver(class: "Limesharp\\Windcave\\Model\\Resolver\\PxFusionPostRequest")
    
}

input PxFusionRequestData {
    card_num: String!
    nme_card: String!
    ex_mnth: String!
    ex_yr: String!
    cvc2: String!
    action: String!
    dps_px_pay: String!
    session_id: String!
}

我用 laravel 來稱呼它,比如 -

public function pxFusionPostRequest($input){
        try {
            $response = $this->sendGraphQL('post', 'queries/payment/px-fusion-post-request.graphql', [
                'card_num'      =>  $input['cardNum'],
                'nme_card'      =>  $input['nmeCard'],
                'ex_mnth'       =>  $input['exMnth'],
                'ex_yr'         =>  $input['exYr'],
                'cvc2'          =>  $input['cvc2'],
                'action'        =>  $input['action'],
                'dps_px_pay'    =>  $input['dpsPxPay'],
                'session_id'    =>  $input['sessionId']
            ]);

            dd($response);
            
            if ($response->data->pxFusionPostRequest == null) {
                throw new GraphQlLogicException($response->errors[0]->message);
            }

            $data = $response->data->pxFusionPostRequest;
            return response()->json($data);
        } catch (\Exception $e) {
            return response()->json(['message' => $e->getMessage()])->setStatusCode(400);
        }
    }

而這個px-fusion-post-request.graphql

mutation ($card_num: String!, $nme_card: String!, $ex_mnth: String!, $ex_yr: String!, $cvc2: String!, $action: String!, $dps_px_pay: String!, $session_id: String!) {
    pxFusionPostRequest(card_num: $card_num, nme_card: $nme_card, ex_mnth: $ex_mnth, ex_yr: $ex_yr, cvc2: $cvc2, action: $action, dps_px_pay: $dps_px_pay, session_id: $session_id)
}

基本上,我將用戶卡詳細信息傳遞給 magento 並創建一個發布請求。 但是,我不確定為什么在我傳遞它時它會說未知的論點。

您的突變需要一個帶有名稱input和類型PxFusionRequestData的參數,但您正試圖將所有子字段作為參數傳遞。 嘗試這個:

mutation ($input: PxFusionRequestData) {
    pxFusionPostRequest(input: $input)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM