Как интегрировать платежный шлюз Citrus, не спрашивая логин пользователя в ios?
Надеюсь у тебя все хорошо.
Я пытаюсь интегрировать CitrusPay SDK в приложение для iPhone. Как я могу интегрировать оплату CitrusPay Direct, не прося пользователя войти в систему Citrus Pay.
Я хочу дать пользователю такие опции:
- Оплатить с помощью Citrus Wallet
- Оплата с помощью кредитной карты / дебетовой карты
- Оплата с помощью интернет-банкинга
Если пользователь захочет оплатить с помощью 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];
}
}];
}
}];