📌  相关文章
📜  demo.pesapal.com api 键 stackoverflow - Javascript (1)

📅  最后修改于: 2023-12-03 15:30:26.196000             🧑  作者: Mango

PesaPal API介绍

PesaPal是一家非洲在线支付公司,提供多种支付方式。它的API允许程序员将支付集成到他们的网站或应用程序中,以便客户可以使用PesaPal支付他们的账单。

API密钥

要开始使用PesaPal API,您需要一个API密钥。您可以从PesaPal网站上创建一个API密钥,这是一个带有一对公私密钥的JSON对象。您应该将密钥保管好,并使用您的私钥对请求进行签名,以便PesaPal可以验证您的请求。

API文档

您可以在demo.pesapal.com上找到PesaPal API的文档。该文档详细介绍了所有API端点、参数和示例请求。您可以使用任何语言来调用API,只需要将请求发送到API的URL,并使用您的API密钥签署请求。

示例代码

以下是使用JavaScript调用PesaPal API的示例代码:

const request = require('request');

const oauth_consumer_key = 'your-oauth-consumer-key';
const oauth_consumer_secret = 'your-oauth-consumer-secret';

const url = 'https://demo.pesapal.com/api/QueryPaymentStatus';

const pesapal_request_data = {
  pesapal_merchant_reference: 'your-merchant-reference',
  pesapal_transaction_tracking_id: 'your-transaction-tracking-id',
}

const oauth_timestamp = Math.floor(Date.now() / 1000);
const nonce = Math.floor(Math.random() * 10000000);

const signature_parameters = [
  ['pesapal_merchant_reference', pesapal_request_data.pesapal_merchant_reference],
  ['pesapal_transaction_tracking_id', pesapal_request_data.pesapal_transaction_tracking_id],
  ['oauth_consumer_key', oauth_consumer_key],
  ['oauth_nonce', nonce],
  ['oauth_signature_method', 'HMAC-SHA1'],
  ['oauth_timestamp', oauth_timestamp],
  ['oauth_version', '1.0'],
];

signature_parameters.sort();

const signature_base_string = 'GET&' + encodeURIComponent(url) + '&' + encodeURIComponent(signature_parameters.map((p) => p.join('=')).join('&'));

const signature_key = encodeURIComponent(oauth_consumer_secret) + '&';

const signature = require('crypto').createHmac('sha1', signature_key).update(signature_base_string).digest('base64');

const oauth_header = `OAuth oauth_consumer_key="${oauth_consumer_key}",oauth_nonce="${nonce}",oauth_signature_method="HMAC-SHA1",oauth_timestamp="${oauth_timestamp}",oauth_version="1.0",oauth_signature="${encodeURIComponent(signature)}"`;

request.get(url, {
  headers: {
    'Authorization': oauth_header,
    'Content-Type': 'application/xml',
  },
  qs: pesapal_request_data,
}, function(error, response, body) {
  console.log(body);
});

在以上代码中,您需要将oauth_consumer_keyoauth_consumer_secret的值替换为您的API密钥中的相应值。您还需要替换pesapal_merchant_referencepesapal_transaction_tracking_id参数为您要查询的支付的商家参考和交易跟踪ID。

结论

PesaPal API简单易用,允许开发人员将在线支付集成到其网站或应用程序中。通过使用API密钥对请求进行签名,您可以确保只有经过身份验证的请求才能访问API,并保护您和您的客户的数据和支付信息。