欢迎来到@spreeloop/orange_money👋
Y-note Orange Money Node.js集成模块是一个强大的工具包 旨在简化Orange Money支付功能的整合 到Node.js应用中。该模块为开发人员提供了方便的 接口与Orange Money api交互,实现无缝支付 处理和事务管理。
功能
- 轻松集成:简化了Orange Money支付的整合 功能到Node.js应用程序中。
- 灵活的配置允许开发者自定义支付方式 根据具体需求进行配置。
- 全面的文档:提供全面的文档和 易于集成和使用的示例。
- 支持多种环境:支持多个目标环境; 包括生产和测试环境。
安装
要安装Orange Money Node.js集成模块,只需将其添加到 你的Node.js项目使用npm:
npm install @spreeloop/orange_money
配置
在配置对象中提供端点url。对于付款,请设置 baseURL
到没有API路径的Orange Money API基础URL;包裹增加了付款
自动路径。对于支付,设置 baseURL 到支付API
基础URL和 baseURLToken 完整的访问令牌端点URL。你的
应用程序可以从自己的配置中获取这些值并对其进行更改
不更新此包。
运行测试
npm run test
表内容
-
商人支付
在调用任何支付函数之前,我们需要创建橙色货币 付款的实例。
import {OrangeMoneyPayment} from @spreeloop/orange_money;
// Creates payment configuration
const config = {
/** In test mode use the TargetEnvironment.fake that return static data since
the y-note payment don't have the sandbox environment.
*/
targetEnvironment: TargetEnvironment.prod,
baseURL: 'https://api-s1.orange.cm',
apiUserName: 'your_api_username',
apiPassword: 'your_api_password',
xAuthToken: 'your_x_auth_token',
// By default we use the 'console' to display the log but you can decide to
// use your own custom log.
logger: console,
};
const payment = OrangeMoneyPayment.createPayment(config);
对于支付,也包括可配置的API url:
const disbursementConfig = {
// Other required disbursement credentials and configuration...
baseURL: 'https://omapi.ynote.africa',
baseURLToken: 'https://omapi-token.ynote.africa/oauth2/token',
};
-
生成访问令牌
const accessTokenResponse = await payment.getAccessToken();
-
生成pay-token
const payTokenResponse = await payment.getPayToken('your_access_token');
-
发起付款
支付初始化取决于应用程序所依赖的平台 运行。此包只支持美元支付。
// Initialize Orange Money Payment
const initializationResponse = await payment.initializeOrangeMoneyPayment({
description: 'Payment for goods',
subscriberNumber: '696600011',
channelUserNumber: '696600011',
transactionId: '1234567890',
amount: '1000',
pinCode: '1234',
notifUrl: 'https://yourdomain.com/payment/notify',
payToken: 'your_pay_token',
accessToken: 'your_access_token',
});
如果你想马上得到答案,总是设定一个正确的 notifUrl
端点链接。服务立即或1分钟后通知该url
接收客户端验证。
收到的回复如下:
{
"payToken": "payToken",
"status" : "status",
"message" : "message"
}
注意:发起支付后,请求进入状态
EXPIRED 如果用户未在7分钟内验证或取消支付。
表达 是最流行的NPM之一吗 包来管理端点。
例子:
import * as express from 'express';
const app = express();
const expressRouter = express.Router;
const router = expressRouter();
appV1.use('/', router);
router.post('/orange_money/payment/:paymentId', (req, res) => {
const body = req.body;
...
/**
* Your code.......
Before updating the payment in your system, retrieve the payment status
by using getOrangeMoneyPaymentStatus function and compare the status
received with that sent to your endpoint. This is to ensure the consistency
of your system.
*/
...
return res.sendStatus(HttpStatusCode.Ok);
});
获得橙钱支付状态
// Get Orange Money Payment Status
const paymentStatusResponse = await payment.getOrangeMoneyPaymentStatus({
payToken: 'your_pay_token',
accessToken: 'your_access_token',
});
有时橙钱API不会通知你的端点url,所以我们建议
建立一个可以运行的系统 getOrangeMoneyPaymentStatus 每隔2分钟
取决于你的选择。
有关更多信息和详细的API文档,请参考 官方 商户支付文件
作者
👤 Spreeloop
- 网站:spreeloop.com
- Github: @spreeloop
🤝贡献
欢迎对Orange Money Node.js集成模块做出贡献! 请随意打开 问题 或者提交pull请求来贡献 本模块的开发。
表达你的支持
如果这个项目对你有帮助,给⭐️!