2次发布
0.1.3 | 2023年12月31日 |
---|---|
0.1.2 | 2023年12月30日 |
0.1.1 |
|
0.1.0 |
|
#39 in 金融
180KB
3K SLoC
MOMO.rs是MOMO支付网关的Rust库。
安装
[dependencies]
mtnmomo = "0.1.3"
或者你可以使用cargo add
cargo add mtnmomo
MTN移动货币API
此包提供了一种连接到MTN MoMo API的简单方法,它提供了以下产品
- 收款
- 支付
- 汇款
- 沙箱环境下的配置
如何使用
use mtnmomo::Momo;
use uuid::Uuid;
use dotenv::dotenv;
use std::env;
#[tokio::main]
async fn main() {
dotenv().ok();
let mtn_url = env::var("MTN_URL").expect("MTN_COLLECTION_URL must be set"); // https://sandbox.momodeveloper.mtn.com
let primary_key = env::var("MTN_COLLECTION_PRIMARY_KEY").expect("PRIMARY_KEY must be set");
let secondary_key = env::var("MTN_COLLECTION_SECONDARY_KEY").expect("SECONDARY_KEY must be set");
let momo = Momo::new_with_provisioning(mtn_url, primary_key.clone()).await.unwrap();
let collection = momo.collection(primary_key, secondary_key);
}
初始化Momo结构后,您可以使用收款、支付或汇款方法初始化相应产品。产品有您可以使用的方法来与API交互。例如,要请求客户付款,您可以使用收款产品的request_to_pay方法。
重要提示
mtnmomo::Momo::new_with_provisioning
用于使用沙箱环境初始化Momo结构。mtnmomo::Momo::new
用于使用生产环境初始化Momo结构。
制作请求的示例
use mtnmomo::{Momo, Party, PartyIdType, Currency, RequestToPay};
use uuid::Uuid;
use dotenv::dotenv;
use std::env;
#[tokio::main]
async fn main() {
dotenv().ok();
let mtn_url = env::var("MTN_URL").expect("MTN_COLLECTION_URL must be set"); // https://sandbox.momodeveloper.mtn.com
let primary_key = env::var("MTN_COLLECTION_PRIMARY_KEY").expect("PRIMARY_KEY must be set");
let secondary_key = env::var("MTN_COLLECTION_SECONDARY_KEY").expect("SECONDARY_KEY must be set");
let momo = Momo::new_with_provisioning(mtn_url, primary_key.clone()).await.unwrap();
let collection = momo.collection(primary_key, secondary_key);
let payer : Party = Party {
party_id_type: PartyIdType::MSISDN,
party_id: "234553".to_string(),
};
let request = RequestToPay::new("100".to_string(), Currency::EUR, payer, "test_payer_message".to_string(), "test_payee_note".to_string());
let result = collection.request_to_pay(request).await;
}
上述代码将请求从电话号码"234553"的客户那里支付100欧元。客户将在其手机上收到提示以确认支付。如果客户确认支付,则将处理支付,并且客户将收到确认消息。如果客户拒绝支付,则不会处理支付,并且客户将收到一条通知他们支付已被拒绝的消息。
依赖关系
~7–20MB
~295K SLoC