> For the complete documentation index, see [llms.txt](https://docs.coda.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coda.co/https-coda-payments.gitbook.io-zhong-wen-coda-private-technical-documentation/codapay/hou-duan-api-ji-cheng/hou-duan-fei-ka-pian-api-ji-cheng/hou-tai-api-diao-yong-liu-cheng-gai-lan/yun-ying-shang-zhi-fu-dcb.md).

# 运营商支付(DCB)

## 运营商支付调用流程

<figure><img src="/files/7RALt93OZHvpH6IAk3U9" alt=""><figcaption></figcaption></figure>

## 运营商支付 MT-MO 验证流程

在运营商计费 MT-MO 验证流程中，客户通过短信接收支付指引， 并根据支付指引发送短信以授权交易。

<figure><img src="/files/ns2XomTfTpVSjASNGpTE" alt=""><figcaption></figcaption></figure>

## 运营商支付 MO 验证流程

在运营商计费 MO 验证流程中，授权同样通过发送短信完成，但相关指引需要在商家的支付页面上提供。

<figure><img src="/files/FYU1fvpPLRwn87sgH7mM" alt=""><figcaption></figcaption></figure>

## 请求参数

<table><thead><tr><th width="148">参数</th><th width="95">类型</th><th width="116">长度</th><th>描述</th></tr></thead><tbody><tr><td>api_key</td><td>String</td><td>256</td><td><strong>必填</strong><br>Coda提供的API密钥 - 请参考 <a data-mention href="/pages/Knn2G4Gd1ZPSUbSS0PUS">/pages/Knn2G4Gd1ZPSUbSS0PUS</a> 了解如何获取。</td></tr><tr><td>project_id</td><td>String</td><td>10</td><td><strong>此字段仅适用于 v2.0 API，必填项</strong><br>由 Coda 提供的 Project ID，对每个标题产品都是唯一的。<br>请参阅 <a data-mention href="/pages/Knn2G4Gd1ZPSUbSS0PUS">/pages/Knn2G4Gd1ZPSUbSS0PUS</a> 了解</td></tr><tr><td>order_id</td><td>String</td><td>64</td><td><p><strong>必填</strong></p><p>您在支付请求发起时传递的订单ID</p></td></tr><tr><td>country</td><td>Number</td><td>N/A</td><td><strong>必填</strong><br>ISO 3166 的国家代码 <a data-mention href="/pages/7B3qZnefeSwkSs84sKuB">/pages/7B3qZnefeSwkSs84sKuB</a></td></tr><tr><td>lang</td><td>String</td><td>2</td><td><p><strong>必填</strong></p><p><a data-mention href="/pages/lumiE4ZV7er3NqdusLTc">/pages/lumiE4ZV7er3NqdusLTc</a></p></td></tr><tr><td>type</td><td>Number</td><td>1</td><td><p>1：数字内容物品</p><p>2：非数字内容物品</p></td></tr><tr><td>pay_type</td><td>Number</td><td>1</td><td><p><strong>必填</strong></p><p>运营商支付使用 <code>pay_type = 1</code>。</p><p></p><p>对于运营商计费，如果客户输入的 MSISDN 与请求消息中的运营商计费不符，交易将因错误 240 而失败。<br><br>更多详情请参阅 <a data-mention href="/pages/9qMfw9ltzzDp2UjOhCld">/pages/9qMfw9ltzzDp2UjOhCld</a></p></td></tr><tr><td>mno_code</td><td>Number</td><td>N/A</td><td><p><strong>必填</strong></p><p>移动网络代码（MNC）。如果为空，Coda 将选择可用的移动网络运营商（MNO）</p></td></tr><tr><td>msisdn</td><td>Number</td><td>15</td><td><p><strong>可选</strong><br>MSISDN（未格式化；不包含国家代码）</p><p></p><p>仅在需要 MSISDN 而非电子邮件时包含此项。</p></td></tr><tr><td>merchant_name</td><td>String</td><td>128</td><td><p><strong>可选</strong><br>将在短信中显示的商户名称。如果您希望指定商家名称，请在此字段中输入名称。</p><p><br>默认值为空。</p></td></tr><tr><td>items</td><td>ItemInfo</td><td>N/A</td><td><p><strong>必填</strong></p><p>用户购买的商品列表</p></td></tr><tr><td>items[].code</td><td>String</td><td>128</td><td><p><strong>必填</strong></p><p>商家的商品代码</p></td></tr><tr><td>items[].name</td><td>String</td><td>128</td><td><p><strong>必填</strong></p><p>商品名称，仅支持拉丁字符</p></td></tr><tr><td>items[].price</td><td>Number</td><td>N/A</td><td><strong>必填</strong><br>已含税的商品价格（已含税），以请求中指定的货币计价</td></tr><tr><td>items[].type</td><td>Number</td><td>N/A</td><td><strong>必填</strong><br>默认值=1</td></tr><tr><td>profile</td><td>Map</td><td>N/A</td><td><strong>必填</strong><br><a data-mention href="#profile-zi-duan">#profile-zi-duan</a></td></tr></tbody></table>

## Profile 字段

<table><thead><tr><th width="146">参数</th><th width="106">类型</th><th width="110">长度</th><th>描述</th></tr></thead><tbody><tr><td>user_id</td><td>String</td><td>128</td><td><p><strong>必填</strong></p><p>客户的用户 ID</p></td></tr><tr><td>client_ip</td><td>String</td><td>15</td><td><strong>必填</strong><br>客户的 IP 地址 (仅支持IPv4)</td></tr><tr><td>user_agent</td><td>String</td><td>512</td><td><strong>必填</strong><br>客户的用户代理数据（浏览器和操作系统的详细信息）</td></tr></tbody></table>

### 请求示例

{% tabs %}
{% tab title="v2.0 带 MSISDN 的示例" %}

```json
{
  "project_id": "1", //此字段仅适用于 v2.0 API
  "country": "702",
  "api_key": "test_e944d44f065eade8157737385a09",
  "order_id": "<Your OrderID>",
  "lang": "en",
  "merchant_name": "Codapay",
  "type": "1",
  "pay_type": "1",
  "mno_code": "52503",
  "msisdn": "<Your number>",
  "items": [
    {
      "code": "5",
      "name": "Test Item",
      "price": 60.0
    }
  ],
  "profile": {
    "user_id": "12345"

  }
}
```

{% endtab %}

{% tab title="v2.0 不带 MSISDN 的示例" %}

```json
{
  "project_id": "1", //此字段仅适用于 v2.0 API
  "country": "702",
  "api_key": "test_e944d44f065eade8157737385a09",
  "order_id": "<Your OrderID>",
  "lang": "en",
  "merchant_name": "Codapay",
  "type": "1",
  "pay_type": "1",
  "mno_code": "52503",
  "items": [
    {
      "code": "5",
      "name": "Test Item",
      "price": 60.0
    }
  ],
  "profile": {
    "user_id": "12345"

  }
}
```

{% endtab %}

{% tab title="v1.0 带 MSISDN 的示例" %}

```javascript
{
  "api_key": "<API Key>",
  "order_id": "<Your OrderID>",
  "lang": "en",
  "pay_type": 1,
  "msisdn": "<Your number>",
  "mno_code": 22,
  "merchant_name": "Koko eBooks",
  "type": 1,
  "items": [
    {
      "code": "1",
      "name": "One Day",
      "price": 10000,
      "type": 1
    }
  ],
  "profile": {
    "user_id": "Testuser397"
  }
}
```

{% endtab %}

{% tab title="v1.0 不带 MSISDN 的示例" %}

```python
{
  "api_key": "<API Key>",
  "order_id": "<Your OrderID>",
  "lang": "en",
  "pay_type": 1,
  "mno_code": 22,
  "merchant_name": "Koko eBooks",
  "type": 1,
  "items": [
    {
      "code": "1",
      "name": "One Day",
      "price": 10000,
      "type": 1
    }
  ],
  "profile": {
    "user_id": "Testuser397"
  }
}
```

{% endtab %}
{% endtabs %}

## 响应参数

<table><thead><tr><th width="153.33333333333331">参数</th><th width="141">类型</th><th width="94">长度</th><th>描述</th></tr></thead><tbody><tr><td>result_code</td><td>Number</td><td>N/A</td><td><p>ResultCode将帮助指示交易的状态。<br></p><p><code>ResultCode = 0</code> 表示交易成功。<br><br>错误代码列表请参阅 <a data-mention href="/pages/Ijfanb3Eb2mtXRsbF81n">/pages/Ijfanb3Eb2mtXRsbF81n</a></p></td></tr><tr><td>result_desc</td><td>String</td><td>512</td><td>如果resultCode返回错误，则该值描述错误信息。</td></tr><tr><td>txn_id</td><td>Number</td><td>N/A</td><td>支付请求发起返回的Coda订单ID。</td></tr><tr><td>txn_timeout</td><td>Number</td><td>N/A</td><td>交易超时时间（分钟）</td></tr><tr><td>total_price</td><td>Number</td><td>N/A</td><td>用户支付的总金额，以本地货币计价。</td></tr><tr><td>pay_instructions</td><td>String</td><td>15</td><td>如果响应返回了此值，商家应在页面上向客户显示提供的支付指引。</td></tr><tr><td>profile</td><td>Number</td><td>N/A</td><td>请参考 <a data-mention href="#profile-zi-duan-1">#profile-zi-duan-1</a></td></tr></tbody></table>

## Profile 字段

<table><thead><tr><th width="157.33333333333331">参数</th><th width="131">类型</th><th width="117">长度</th><th>描述</th></tr></thead><tbody><tr><td>extInfoByte</td><td>N/A</td><td>N/A</td><td>请忽略此字段。</td></tr><tr><td>redirect_url</td><td>String</td><td>128</td><td>仅当所选支付渠道遵循重定向 URL 流程时，才返回支付网关的重定向 URL。</td></tr><tr><td>merchantType</td><td>String</td><td>128</td><td>请忽略此字段。</td></tr></tbody></table>

### 响应示例

{% tabs %}
{% tab title="带 MSISDN 的示例" %}

```javascript
{
    "txn_id": 6648561839693172536,
    "txn_timeout": 11,
    "result_code": 0,
    "total_price": 100.0,
    "pay_instructions": "We just sent an SMS to xxxxxx. To complete the transaction, send \"PAY\" followed by five digits code from the SMS to 75457. Example: PAY 12345.",
    "profile": {
        "extInfoByte": "0",
        "user_id": "Testuser397",
        "merchantType": "Codapay"
    }
}
```

{% endtab %}

{% tab title="不带 MSISDN 的示例" %}

```python
{
    "txn_id": 6742026121325386583,
    "txn_timeout": 61,
    "result_code": 0,
    "total_price": 1000.0,
    "pay_instructions": "",
    "profile": {
        "extInfoByte": "0",
        "user_id": "12345",
        "merchantType": "Codapay",
        "redirect_url": "https://sample_URL.com"
    }
}
```

{% endtab %}
{% endtabs %}

## 移动运营商代码

<table><thead><tr><th width="151">国家</th><th width="232">支付渠道（MNO）</th><th width="107">认证类型</th><th>网络代码</th></tr></thead><tbody><tr><td>Bangladesh</td><td>Robi</td><td>N/A</td><td>47002</td></tr><tr><td>Indonesia</td><td>Indosat</td><td>MT-MO</td><td>51001 or 51021</td></tr><tr><td>Indonesia</td><td>Telkomsel</td><td>MT-MO</td><td>51010 or 51020</td></tr><tr><td>Indonesia</td><td>TRI</td><td>MT-MO</td><td>51089</td></tr><tr><td>Indonesia</td><td>XL</td><td>MO</td><td>51008 or 51011</td></tr><tr><td>Cambodia</td><td>Smart Axiata</td><td>MT-MO</td><td>45605</td></tr><tr><td>Laos</td><td>Unitel</td><td>MT-MO</td><td>45703</td></tr><tr><td>Myanmar</td><td>ATOM</td><td>MT-MO</td><td>41406</td></tr><tr><td>Myanmar</td><td>Ooredoo</td><td>MT-MO</td><td>41405</td></tr><tr><td>Malaysia</td><td>Celcom</td><td>MT-MO</td><td>50213, 50219</td></tr><tr><td>Malaysia</td><td>Maxis</td><td>MO</td><td>50212 or 50217</td></tr><tr><td>Philippines</td><td>Smart/Sun</td><td>MT-MO</td><td>51503</td></tr><tr><td>Pakistan</td><td>Telenor Pakistan</td><td>MT-MO</td><td>52586</td></tr><tr><td>Singapore</td><td>M1</td><td>MT-MO</td><td>52503</td></tr><tr><td>Taiwan</td><td>Asia Pacific Telecom</td><td>N/A</td><td>46605</td></tr><tr><td>Taiwan</td><td>Chunghwa Telecom</td><td>N/A</td><td>46692, 46611</td></tr><tr><td>Taiwan</td><td>FarEasTone</td><td>N/A</td><td>46602, 46607, 46601, 46606, 46603</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.coda.co/https-coda-payments.gitbook.io-zhong-wen-coda-private-technical-documentation/codapay/hou-duan-api-ji-cheng/hou-duan-fei-ka-pian-api-ji-cheng/hou-tai-api-diao-yong-liu-cheng-gai-lan/yun-ying-shang-zhi-fu-dcb.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
