Как интегрировать платежный шлюз Citrus, не спрашивая логин пользователя в ios?

Надеюсь у тебя все хорошо.

Я пытаюсь интегрировать CitrusPay SDK в приложение для iPhone. Как я могу интегрировать оплату CitrusPay Direct, не прося пользователя войти в систему Citrus Pay.

Я хочу дать пользователю такие опции:

  1. Оплатить с помощью Citrus Wallet
  2. Оплата с помощью кредитной карты / дебетовой карты
  3. Оплата с помощью интернет-банкинга

Если пользователь захочет оплатить с помощью Citrus Wallet, я попрошу его войти в систему Citrus, используя свои учетные данные. Если они выберут 2-й или 3-й вариант, например, оплату с помощью кредитной карты / дебетовой карты или банковского счета в сети, им не нужно будет входить в систему.

Я хочу реализовать эту функцию в своем приложении, используя CitrusPay SDK. Можете ли вы указать мне код этого?

У меня уже есть демоверсия Citrus Pay, и я уже проверил ее.

https://github.com/citruspay/citruspay-ios-sdk

Я скачал демо по вышеуказанной ссылке.

Пожалуйста, помогите мне в этом.

1 ответ

    [CitrusPaymentSDK enableDEBUGLogs];

    CTSKeyStore *keyStore = [[CTSKeyStore alloc] init];
    keyStore.signinId = SignInId;
    keyStore.signinSecret = SignInSecretKey;
    keyStore.signUpId = SubscriptionId;
    keyStore.signUpSecret = SubscriptionSecretKey;
    keyStore.vanity = VanityUrl;

    [CitrusPaymentSDK initializeWithKeyStore:keyStore environment:CTSEnvSandbox];

    [CitrusPaymentSDK enableDEBUGLogs];

    //CC, DC payments
    CTSElectronicCardUpdate *creditCard = [[CTSElectronicCardUpdate alloc] initCreditCard]; //for debit card use > initDebitCard
    creditCard.number = @"";
    creditCard.expiryDate = @"XX/XX"; //only mm/yyyy format
    creditCard.scheme = [CTSUtility fetchCardSchemeForCardNumber:creditCard.number]; //fetch card scheme
    creditCard.ownerName = @"XXXXXXXX"; // no special characters here
    creditCard.cvv = @"XXX";


    CTSPaymentLayer *paymentLayer = [CitrusPaymentSDK fetchSharedPaymentLayer];

    CTSPaymentDetailUpdate *paymentInfo = [[CTSPaymentDetailUpdate alloc] init];
    [paymentInfo addCard:creditCard];

    CTSContactUpdate* contactInfo;
    CTSUserAddress* addressInfo;

    contactInfo = [[CTSContactUpdate alloc] init];
    contactInfo.firstName = @"";
    contactInfo.lastName = @"";
    contactInfo.email = @"";
    contactInfo.mobile = @"";

    addressInfo = [[CTSUserAddress alloc] init];
    addressInfo.city = TEST_CITY;
    addressInfo.country = TEST_COUNTRY;
    addressInfo.state = TEST_STATE;
    addressInfo.street1 = TEST_STREET1;
    addressInfo.street2 = TEST_STREET2;
    addressInfo.zip = TEST_ZIP;


    [CTSUtility requestBillAmount:@"X" billURL:BillUrl callback: ^(CTSBill *bill , NSError *error){

        if(error){
            dispatch_async(dispatch_get_main_queue(), ^{
            });
            [UIUtility toastMessageOnScreen:error.localizedDescription];
        }
        else {
            [paymentLayer requestDirectChargePayment:paymentInfo withContact:contactInfo withAddress:addressInfo bill:bill returnViewController:self withCompletionHandler:^(CTSCitrusCashRes *citrusCashResponse, NSError *error){

                dispatch_async(dispatch_get_main_queue(), ^{
                    //                                    [self.indicatorView stopAnimating];
                    //                                    self.indicatorView.hidden = TRUE;
                });
                if(error){
                    [UIUtility toastMessageOnScreen:error.localizedDescription];
                }
                else {
                    [UIUtility toastMessageOnScreen:[NSString stringWithFormat:@"Payment Status %@",[citrusCashResponse.responseDict valueForKey:@"TxStatus"] ]];
                    //                                    [self resetUI];
                }
            }];
        }
    }];
Другие вопросы по тегам