3 个版本
0.1.2 | 2020年9月20日 |
---|---|
0.1.1 | 2019年3月27日 |
0.1.0 | 2019年3月26日 |
#17 in #支付
245KB
6.5K SLoC
iyzipay-rust
非官方 的 iyzipay Rust 客户端。
您可以在 https://iyzico.com 注册 iyzico 账户
要求
Rust 1.41.0 或更高版本
用法
let mut options = Options::new();
options.set_api_key("your api key");
options.set_secret_key("your secret key");
options.set_base_url("https://sandbox-api.iyzipay.com");
let mut request = CreatePaymentRequest::new();
request.set_locale(Locale::TR.value());
request.set_conversation_id("123456789");
request.set_price(BigDecimal::from_str("1").unwrap());
request.set_paid_price(BigDecimal::from_str("1.2").unwrap());
request.set_currency(Currency::TRY.to_string());
request.set_installment(1);
request.set_basket_id("B67832".to_string());
request.set_payment_channel(PaymentChannel::Web.value());
request.set_payment_group(PaymentGroup::Product.value());
let mut payment_card = PaymentCard::new();
payment_card.set_card_holder_name("John Doe");
payment_card.set_card_number("5528790000000008");
payment_card.set_expire_month("12");
payment_card.set_expire_year("2030");
payment_card.set_cvc("123");
payment_card.set_register_card(0);
request.set_payment_card(payment_card);
let mut buyer = Buyer::new();
buyer.set_id("BY789");
buyer.set_name("John");
buyer.set_surname("Doe");
buyer.set_gsm_number("+905350000000");
buyer.set_email("[email protected]");
buyer.set_identity_number("74300864791");
buyer.set_last_login_date("2015-10-05 12:43:35");
buyer.set_registration_date("2013-04-21 15:12:09");
buyer.set_registration_address("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
buyer.set_ip("85.34.78.112");
buyer.set_city("Istanbul");
buyer.set_country("Turkey");
buyer.set_zip_code("34732");
request.set_buyer(buyer);
let mut shipping_address = Address::new();
shipping_address.set_contact_name("Jane Doe");
shipping_address.set_city("Istanbul");
shipping_address.set_country("Turkey");
shipping_address.set_address("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
shipping_address.set_zip_code("34742");
request.set_shipping_address(shipping_address);
let mut billing_address = Address::new();
billing_address.set_contact_name("Jane Doe");
billing_address.set_city("Istanbul");
billing_address.set_country("Turkey");
billing_address.set_address("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
billing_address.set_zip_code("34742");
request.set_billing_address(billing_address);
let mut basket_items: Vec<BasketItem> = Vec::new();
let mut first_basket_item = BasketItem::new();
first_basket_item.set_id("BI101");
first_basket_item.set_name("Binocular");
first_basket_item.set_category1("Collectibles");
first_basket_item.set_category2("Accessories");
first_basket_item.set_item_type(BasketItemType::Physical.value());
first_basket_item.set_price(BigDecimal::from_str("0.3").unwrap());
basket_items.push(first_basket_item);
let mut second_basket_item = BasketItem::new();
second_basket_item.set_id("BI102");
second_basket_item.set_name("Game code");
second_basket_item.set_category1("Game");
second_basket_item.set_category2("Online Game Items");
second_basket_item.set_item_type(BasketItemType::Virtual.value());
second_basket_item.set_price(BigDecimal::from_str("0.5").unwrap());
basket_items.push(second_basket_item);
let mut third_basket_item = BasketItem::new();
third_basket_item.set_id("BI103");
third_basket_item.set_name("Usb");
third_basket_item.set_category1("Electronics");
third_basket_item.set_category2("Usb / Cable");
third_basket_item.set_item_type(BasketItemType::Physical.value());
third_basket_item.set_price(BigDecimal::from_str("0.2").unwrap());
basket_items.push(third_basket_item);
request.set_basket_items(basket_items);
let payment = Payment::create(&request, &get_test_options()).unwrap();
请参阅 tests/sample 软件包中的其他示例。
模拟测试卡
用于模拟 成功 付款的测试卡
卡号 | 银行 | 卡类型 |
---|---|---|
5890040000000016 | 阿克巴克 | 万事达卡(借记卡) |
5526080000000006 | 阿克巴克 | 万事达卡(信用卡) |
4766620000000001 | 丹尼斯银行 | 维萨卡(借记卡) |
4603450000000000 | 丹尼斯银行 | 维萨卡(信用卡) |
4729150000000005 | 丹尼斯银行 Bonus | 维萨卡(信用卡) |
4987490000000002 | 泛美银行 | 维萨卡(借记卡) |
5311570000000005 | 泛美银行 | 万事达卡(信用卡) |
9792020000000001 | 泛美银行 | 特洛伊(借记卡) |
9792030000000000 | 泛美银行 | 特洛伊(信用卡) |
5170410000000004 | 加兰蒂银行 | 万事达卡(借记卡) |
5400360000000003 | 加兰蒂银行 | 万事达卡(信用卡) |
374427000000003 | 加兰蒂银行 | 美国运通卡 |
4475050000000003 | 土耳其人民银行 | 维萨卡(借记卡) |
5528790000000008 | 土耳其人民银行 | 万事达卡(信用卡) |
4059030000000009 | 汇丰银行 | 维萨卡(借记卡) |
5504720000000003 | 汇丰银行 | 万事达卡(信用卡) |
5892830000000000 | 土耳其工商银行 | 万事达卡(借记卡) |
4543590000000006 | 土耳其工商银行 | 维萨卡(信用卡) |
4910050000000006 | 瓦基夫银行 | 维萨卡(借记卡) |
4157920000000002 | 瓦基夫银行 | 维萨卡(信用卡) |
5168880000000002 | 建筑和信贷银行 | 万事达卡(借记卡) |
5451030000000000 | 建筑和信贷银行 | 万事达卡(信用卡) |
跨境 测试卡
卡号 | 国家 |
---|---|
4054180000000007 | 非土耳其(借记卡) |
5400010000000004 | 非土耳其(信用卡) |
用于获取特定 错误 代码的测试卡
卡号 | 描述 |
---|---|
5406670000000009 | 成功但无法取消、退款或后授权 |
4111111111111129 | 资金不足 |
4129111111111111 | 不予承兑 |
4128111111111112 | 无效交易 |
4127111111111113 | 丢失的卡 |
4126111111111114 | 被盗的卡 |
4125111111111115 | 过期卡 |
4124111111111116 | 无效 cvc2 |
4123111111111117 | 不允许持卡人使用 |
4122111111111118 | 不允许终端使用 |
4121111111111119 | 欺诈嫌疑 |
4130111111111118 | 一般错误 |
4131111111111117 | 成功但 mdStatus 为 0 |
4141111111111115 | 成功但 mdStatus 为 4 |
4151111111111112 | 3dsecure 初始化失败 |
4151111111111393 | 仅限在线交易 |
测试
api_key=yourApiKey secret_key=yourSecretKey base_url=https://sandbox-api.iyzipay.com cargo test sample::payment_sample::should_create_payment -- --exact
api_key=yourApiKey secret_key=yourSecretKey base_url=https://sandbox-api.iyzipay.com cargo test sample::apm_sample::should_initialize_apm_payment -- --exact
依赖项
~6–11MB
~237K SLoC