> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fluz.app/llms.txt
> Use this file to discover all available pages before exploring further.

# 请求礼品卡购买审批

`requestGiftCardPurchase`

提交经理审批请求以购买礼品卡。审批通过后，Fluz 会使用提交的参数完成购买。

## Scopes

| Action | Scope               |
| ------ | ------------------- |
| 创建请求   | `REQUEST_GIFT_CARD` |
| 列出请求   | `LIST_APPROVALS`    |
| 批准或拒绝  | `MANAGE_APPROVALS`  |

## Webhook 标识符

| Field          | Value       |
| -------------- | ----------- |
| `approvalType` | `GIFT_CARD` |
| `approvalCode` | `400007`    |

Webhook 事件：`APPROVAL_CREATE`、`APPROVAL_APPROVE`、`APPROVAL_DECLINE`，以及在执行失败时的 `APPROVAL_HANDLER_ERROR`。

## 创建请求

输入字段与直接的 `purchaseGiftCard` 变更相同。有关优惠与资金来源详情，参见 [购买礼品卡](/purchase-gift-card)。

### RequestGiftCardPurchaseInput

| Field                       | Type                  | Required | Description      |
| --------------------------- | --------------------- | -------- | ---------------- |
| `offerId`                   | UUID                  | Yes      | 礼品卡优惠 ID         |
| `purchaseAmount`            | Float                 | Yes      | 购买金额             |
| `channel`                   | SourcePlatformChannel | Yes      | 请求来源渠道（例如，`API`） |
| `fluzpayAmount`             | Float                 | No       | 从 Fluz 余额出资的金额   |
| `bankCardId`                | UUID                  | No       | 银行卡资金来源          |
| `bankAccountId`             | UUID                  | No       | 银行账户资金来源         |
| `paypalVaultId`             | UUID                  | No       | PayPal 资金来源      |
| `userCashBalanceId`         | UUID                  | No       | 用于出资的消费账户        |
| `seatId`                    | UUID                  | No       | 与此次购买关联的席位       |
| `exclusiveRateId`           | UUID                  | No       | 专属费率 ID          |
| `merchantSlug`              | String                | No       | 商户 slug          |
| `gcWarehouseMerchantId`     | UUID                  | No       | 礼品卡仓库商户 ID       |
| `gcWarehouseUserRewardRate` | Float                 | No       | 仓库用户奖励费率         |
| `gcWarehouseDiscountRate`   | Float                 | No       | 仓库折扣率            |
| `memo`                      | String                | No       | 交易备注             |
| `categoryId`                | UUID                  | No       | 交易类别 ID          |

### 示例变更

```graphql theme={null}
mutation {
  requestGiftCardPurchase(
    input: {
      offerId: "ed669305-5e43-40a0-9a25-7a15ed174628"
      purchaseAmount: 25.00
      channel: API
      fluzpayAmount: 25.00
      userCashBalanceId: "b1155504-ad30-4b2f-873d-b8795277b128"
    }
  ) {
    success
    messageId
    error {
      code
      message
    }
  }
}
```

### 示例响应

```json theme={null}
{
  "data": {
    "requestGiftCardPurchase": {
      "success": true,
      "messageId": "1234567890"
    }
  }
}
```

## 批准请求

使用 `approvalId` 调用 `approveApprovalRequest`。需要 `MANAGE_APPROVALS`。

```graphql theme={null}
mutation {
  approveApprovalRequest(approvalId: "07df5653-43a8-4532-9881-3ab5857bbe12") {
    success
    approvalId
    action
  }
}
```

批准后，Fluz 会购买礼品卡。

## 拒绝请求

使用 `approvalId` 调用 `declineApprovalRequest`。需要 `MANAGE_APPROVALS`。

```graphql theme={null}
mutation {
  declineApprovalRequest(approvalId: "07df5653-43a8-4532-9881-3ab5857bbe12") {
    success
    approvalId
    action
  }
}
```

当请求被拒绝时，不会购买任何礼品卡。
