# @bitgo/json-payment-protocol 中文文档

规范地址：https://npmcn.com/package/%40bitgo/json-payment-protocol/

版本：0\.1\.0
npm 元数据更新时间：2026-03-09T04:23:32.744Z
中文译文更新时间：2026-11-08T04:23:06.883Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40bitgo/json-payment-protocol
原文对照：https://npmcn.com/package/%40bitgo/json-payment-protocol/?lang=original
项目主页：https://github.com/bitpay/jsonPaymentProtocol#readme
源码仓库：https://github.com/bitpay/jsonPaymentProtocol

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：24.6 kB，7 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=6\.9\.0
- 运行依赖：3 个
- 首次发布：2022-08-04T23:19:05.626Z
- 最新版本发布：2022-08-04T23:19:05.858Z
- 近 30 天下载量：33224（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 0 个）

## 中文简介

检索 JSON 付款请求和提交付款的简单接口

## 安装

```sh
npm install @bitgo/json-payment-protocol
```

也可以使用：`pnpm add @bitgo/json-payment-protocol`、`yarn add @bitgo/json-payment-protocol`、`bun add @bitgo/json-payment-protocol`

## README

### JSON 支付协议接口

这是JSON支付协议接口的第一个版本. 如果你对规格本身有疑问, [查看文档](https://npmcn.com/package/%40bitgo/json-payment-protocol/specification.md)。 。 。 .

### 开始

`npm install json-payment-protocol`

### 使用量

我们支持召回和承诺。 对于承诺,仅在函数名的结尾添加了Async. 注意注意注意你何时能广播付款. **在多数情况下,在从服务器收到成功通知之前广播付款会导致发送者付款失败.** 发货人将承担再次支付交易费以取回资金的费用.

#### 回电

```javascript
const JsonPaymentProtocol = require('json-payment-protocol');
const paymentProtocol = new JsonPaymentProtocol();

let requestUrl = 'bitcoin:?r=https://test.bitpay.com/i/Jr629pwsXKdTCneLyZja4t';

paymentProtocol.getRawPaymentRequest(requestUrl, function (err, response) {
  if (err) {
    return console.log('Error retrieving payment request', err);
  }
  paymentProtocol.parsePaymentRequest(response.rawBody, response.headers, function (err, paymentRequest) {
    if (err) {
      return console.log('Error parsing payment request', err);
    }

    console.log('Payment request retrieved');
    console.log(paymentRequest);

    //TODO: Create the rawTransaction and sign it in your wallet instead of this, do NOT broadcast yet
    let currency = 'BTC';
    let signedRawTransaction = '02000000010c2b0d60448d5cdfebe222014407bdb408b8427f837447484911efddea700323000000006a47304402201d3ed3117f1968c3b0a078f15f8462408c745ff555b173eff3dfe0a25e063c0c02200551572ec33d45ece8e64275970bd1b1694621f0ed8fac2f7e18095f170fe3fe012102d4edb773e3bd94e1251790f5cc543cbfa76c2b0abad14898674b1c4e27176ef2ffffffff02c44e0100000000001976a914dd826377dcf2075e5065713453cfad675ba9434f88aca070002a010000001976a914e7d0344ba970301e93cd7b505c7ae1b5bcf5639288ac00000000';

    paymentProtocol.sendPayment(currency, signedRawTransaction, paymentRequest.paymentUrl, function(err, response) {
      if (err) {
        //DO NOT BROADCAST PAYMENT
        return console.log('Error sending payment to server');
      }
      console.log('Payment sent successfully');
      //TODO: Broadcast payment to network here
    });
  });
});
```

#### 承诺

```javascript
const JsonPaymentProtocol = require('json-payment-protocol');
const paymentProtocol = new JsonPaymentProtocol();

let requestUrl = 'bitcoin:?r=https://test.bitpay.com/i/Jr629pwsXKdTCneLyZja4t';
paymentProtocol
  .getRawPaymentRequestAsync(requestUrl)
  .then((response) => {
    return paymentProtocol.parsePaymentRequestAsync(response.rawBody, response.headers);
  })
  .then((paymentRequest) => {
    console.log('Payment request retrieved');
    console.log(paymentRequest);
    
    //TODO: Create the rawTransaction and sign it in your wallet instead of this, do NOT broadcast yet
    let currency = 'BTC';
    let signedRawTransaction = '02000000010c2b0d60448d5cdfebe222014407bdb408b8427f837447484911efddea700323000000006a47304402201d3ed3117f1968c3b0a078f15f8462408c745ff555b173eff3dfe0a25e063c0c02200551572ec33d45ece8e64275970bd1b1694621f0ed8fac2f7e18095f170fe3fe012102d4edb773e3bd94e1251790f5cc543cbfa76c2b0abad14898674b1c4e27176ef2ffffffff02c44e0100000000001976a914dd826377dcf2075e5065713453cfad675ba9434f88aca070002a010000001976a914e7d0344ba970301e93cd7b505c7ae1b5bcf5639288ac00000000';

    return paymentProtocol.sendPaymentAsync(currency, signedRawTransaction, paymentRequest.paymentUrl);
  })
  .then((response) => {
    console.log('Payment sent successfully');
    //TODO: Broadcast payment to network here
  })
  .catch((err) => {
    //DO NOT BROADCAST PAYMENT
    return console.log('Error processing payment request', err);
  });
```

### 选项

转到 `new JsonPaymentProtocol()` 因此,如果您需要使用代理或设置任何其他请求。js的旗帜可以在即时请求时包含。 例如:

```javascript
new JsonPaymentProtocol({
  proxy: 'socks://mySocksProxy.local'
});
```

### URI 格式

你可以提供其中之一 `bitcoin:?r=https://bitpay.com/i/invoice` 格式或 `https://bitpay.com/i/invoice` 直接说.

## 常见问题

### @bitgo/json-payment-protocol 是什么？

检索 JSON 付款请求和提交付款的简单接口

### 如何安装 @bitgo/json-payment-protocol？

在项目目录运行 npm install @bitgo/json-payment-protocol，或使用 pnpm add / yarn add / bun add。

### @bitgo/json-payment-protocol 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/bitgo\_\_json-payment-protocol 是否存在。

### @bitgo/json-payment-protocol 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @bitgo/json-payment-protocol 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=6\.9\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @bitgo/json-payment-protocol 可以商用吗？

@bitgo/json-payment-protocol 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @bitgo/json-payment-protocol 的下载量有多少？

根据 npm 官方下载统计，@bitgo/json-payment-protocol 在 2026/10/08 – 2026/11/06 这 30 天内被下载 33,224 次，日均约 1,107 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @bitgo/json-payment-protocol 还在维护吗？

最新版本 0\.1\.0 发布于 2022/08/05（4 年前）；至今共发布 1 个版本，其中过去 12 个月发布了 0 个；首次发布于 2022/08/05。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

