Latest 1.0.0
Homepage https://github.com/homedirectvn/PayDirectCardCharging-iOS
License MIT
Platforms ios 6.0, requires ARC
Authors

Other language: English

Giới thiệu

PayDirectCardCharging cung cấp cách thức đơn giản nhất để quản lý user và cho phép tích hợp thanh toán cho ứng dụng của bạn trên hệ thống Paydirect. SDK cung cấp giải pháp cho các hình thức thanh toán.

PayDirectCardCharging iOS SDK hỗ trợ iOS từ 6.0 trở lên

Yêu cầu

Môi trường phát triển

PayDirectCardCharging Version Minimum iOS Target Notes
1.0.0 6.0 Xcode 6.1 is required. Support armv7, armv7s and arm64 architectures (+ i386 for the simulator)

Tương thích

PayDirectCardCharging iOS SDK hỗ trợ tất cả iOS từ 6.0 trở lên. Hỗ trợ armv7, armv7s and arm64 architectures (+ i386 cho simulator).

Xcode

Chúng tôi sử dụng Xcode 7.3 để viết project demo và SDK. Bạn có thể gặp một số lỗi nếu mở trên những phiên bản Xcode cũ hơn. Đó là lý do vì sao chúng tôi khuyên bạn sử dụng phiên bản mới nhất (non-beta) khả dụng.

Bắt đầu với project Demo

Bạn cần clone hoặc download repository này về máy của bạn.

Chạy project. Ứng dụng mô tả cho bạn khả năng cũng như cách tích hợp của PayDirectCardCharging.

6 bước để tích hợp với PayDirectCardCharging

1. Tạo MO Code

Việc đầu tiên bạn cần làm là đăng ký tài khoản khách hàng cho PayDirectCardCharging. Hãy liên hệ qua Email hoặc Skype (kythuat_paydirect). Sau khi có tài khoản, bạn có thể truy cập vào PayDirectCardCharging dashboard và tích hợp PayDirectCardCharging với ứng dụng của bạn.

2. Tải SDK

Có rất nhiều cách để tải PayDirectCardCharging vào project Xcode. Bạn có thể dùng CocoaPods hoặc tự tay tải và thêm framework cùng các thư viện liên quan vào project

Cocoapod (Coming soon)

CocoaPods là cách nhanh nhất để tải và chạy PayDirectCardCharging trên ứng dụng iOS. Chỉ cần thêm dòng dưới đây vào Podfile và gọi lệnh pod install hoặc pod update

pod 'PayDirectCardCharging'

Tải PayDirectCardCharging

Bạn có thể tải iOS SDK ngay từ repo này. Giải nén PayDirectCardCharging, kéo PayDirectCardCharging và các framework kèm theo vào project của bạn

3. Tích hợp SDK

Frameworks & Dependencies

PayDirectCardCharging SDK phụ thuộc vào một số framework khác. Bạn cần thêm chúng vào project của mình. Cụ thể thêm những framework sau:

Framework
SystemConfiguration.framework
CoreMobileServices.framework
CoreTelephony.framework

4. Bắt đầu code

4.1. Import SDK

SDK được import thông qua class PayDirectCardCharging.h.

#import <PayDirectCardCharging/PayDirectCardCharging.h>

4.2. Khởi tạo PDCardChargingClient

Khi bạn cần sử dụng đến PayDirectCardCharging SDK, bạn cần khởi tạo một PDCardChargingClient

    NSString* partnerCode = @"PARTNER_CODE";
    NSString* password = @"PASSWORD";
    NSString* secretKey = @"SECRET_KEY";

    payCardChargingClient = [[PDCardChargingClient alloc]  initWithPartnertCode:partnerCode
                                     password:password
                                    secretKey:secretKey];
    payCardChargingClient.dataSource = self;

4.3. Cấu hình/lựa chọn dịch vụ thanh toán bằng thẻ Telco

  • PayDirectCardCharging cho phép thanh toán bằng thẻ cho nhiều nhà mạng khác nhau ( Mobifone, Vinaphone, Viettel, VCOIN, Gate, GM, BIT và ZING).
    Danh sách các nhà mạng có thể lấy qua PDCardChargingClient:

    
    NSMutableArray* issuers;
    issuers = [[NSMutableArray alloc] init];
    [issuers addObjectsFromArray:[PDCardChargingClient supportIssuers]];

### 4.4. Cấu hình, gửi thông tin thanh toán tới nhà mạng
4.4.1. Sử dụng UI có sẵn hỗ trợ trong PayDirectCardCharging SDK
- Với phương pháp này, người dùng có thể chọn nhà mạng (telecom) , mã thẻ và serial thẻ cho giao dịch  (như hình dưới)
![PayDirectCardCharging by UI](http://i.imgur.com/FNv433h.png)

Để tiến hành thanh toán, bạn cần:
- Tạo một PDCardChargingController:

```Objective-C
     PDCardChargingController * pdCardChargingController = [[PDCardChargingController alloc] initWithCardClient:self.client transRef:[NSString randomTransRef] accountId:@"GAME_NAME"];

    pdCardChargingController.delegate = self;

    [self presentViewController:pdCardChargingController animated:YES completion:nil];

Để cấu hình/lựa chọn nhà mạng bạn có thể implement các hàm được mô tả trong PDCardChargingControllerDelegate

  • Đối với phương pháp sử dụng giao diện, bạn không cần phải viết code để người dùng chọn lựa nhà mạng. Sau khi bạn nhập mã số nạp tiền và mã số thẻ, để bắt các sự kiện của quá trình thanh toán bạn cần implement một số hàm sau:

Sự kiện người dùng thanh toán thành công

/**
 *  Informs the delegate when the user has been paid successfully.
 *
 *  @param viewController The PDCardChargingController view controller informing the sucessfull payment.
 */
- (void)useCardViewController:(PDCardChargingController * _Nonnull)viewController
         didSucceedWithResult:(PDCardChargingResult * _Nullable)result {
    if (result && !result.error) {
        [self.alert alertWithTitle:@"Successful"
                           message:@"Payment was successful"
                            titles:@[@"Ok"]
                          handlers:@[^{

        }]];
        [viewController dismissViewControllerAnimated:YES
                                           completion:nil];
    }
}

Sự kiện thực hiện thanh toán không thành công

/**
 *  Informs the delegate when the user has a payment failure.
 *
 *  @param viewController The PDCardChargingController view controller informing its delegate of failure .
 */
- (void)useCardViewController:(PDCardChargingController * _Nonnull)viewController
          didFailedWithResult:(PDCardChargingResult * _Nullable)result {
    if (result && result.error) {
        [self.alert alertWithTitle:@"Error"
                           message:[result.error localizedDescription]
                            titles:@[@"Ok"]
                          handlers:@[^{
        }]];
    } else {
        [self.alert alertWithTitle:@"Error"
                           message:@"Unknown Error."
                            titles:@[@"Ok"]
                          handlers:@[^{
        }]];
    }
}

Sự kiện hủy thanh toán

/**
 *  Informs the delegate when the  user has canceled payment
 *
 *  @param viewController The PDCardChargingController view controller informing its delegate.
 */
- (void)useCardViewControllerDidCancel:(PDCardChargingController * _Nonnull)viewController {
    [viewController dismissViewControllerAnimated:YES
                                       completion:nil];
}

4.4.2. Sử dụng PDCardChargingClient để tự tạo thông tin thanh toán dựa trên thông số nhà mạng (supportIssuers)


    - (IBAction)submitCard:(id)sender {
    [self.view endEditing:YES];
    NSString * cardSerial = @"SERIAL_NUMBER";
    NSString * cardCode = @"CODE_NUMBER";

    NSMutableArray* issuers;
    issuers = [[NSMutableArray alloc] init];
    [issuers addObjectsFromArray:[PDCardChargingClient supportIssuers]];
    NSString * issuer = issuers[0];
    if (cardCode.length < 9) {
        [self showAlertWithOKButton:@"Invalid card code."];
        return;

    if (cardSerial.length < 9) {
        [self showAlertWithOKButton:@"Invalid card serial."];
        return;
    }

    [PDCardMBProgressHUD showHUDAddedTo:self.view animated:YES];
    [self.client useCardWithIssuer:issuer
                        cardSerial:cardSerial
                          cardCode:cardCode
                            amount:@"0"
                          transRef:self.transRef
                         accountId:self.accountId
                         completed:^(PDCardChargingResult* result) {
                             [PDCardMBProgressHUD hideHUDForView:self.view
                                                  animated:YES];
                             if (self.delegate) {
                                 if (result && !result.error) {
                                     if ([self.delegate respondsToSelector:@selector(useCardViewController:didSucceedWithResult:)]) {
                                         [self.delegate useCardViewController:self
                                                         didSucceedWithResult:result];
                                     }
                                 } else {
                                     if ([self.delegate respondsToSelector:@selector(useCardViewController:didFailedWithResult:)]) {
                                         [self.delegate useCardViewController:self
                                                          didFailedWithResult:result];
                                     }
                                 }
                             }
                         }];

}

Xin chúc mừng. Bạn đã tích hợp xong cơ bản PayDirectCardCharging

Hỗ trợ

Vui lòng liên hệ với chúng tôi về những vấn đề chung.

Về những vấn đề kỹ thuật

Trong trường hợp bạn có những vấn đề về kỹ thuật, vui lòng liên hệ với đội kỹ thuật của chúng tôi.
Vui lòng cung cấp những thông tin sau khi liên hệ, chúng sẽ giúp chúng tôi hỗ trợ bạn nhanh hơn rất nhiều.

Latest podspec

{
    "name": "PayDirectCardCharging",
    "version": "1.0.0",
    "summary": "PayDirectCardCharging",
    "homepage": "https://github.com/homedirectvn/PayDirectCardCharging-iOS",
    "license": "MIT",
    "authors": {
        "Homedirect": "[email protected]"
    },
    "platforms": {
        "ios": "6.0"
    },
    "source": {
        "git": "https://github.com/homedirectvn/PayDirectCardCharging-iOS.git",
        "tag": "1.0.0"
    },
    "vendored_frameworks": "Framework/PayDirectCardCharging.framework",
    "resources": "Framework/PayDirectCardCharging.bundle",
    "requires_arc": true
}

Pin It on Pinterest

Share This