0

希望你一切顺利。

我正在尝试将 CitrusPay SDK 集成到我的 iPhone 应用程序中。如何在不要求用户登录 citrus pay 的情况下集成 CitrusPay 直接支付。

我想为用户提供如下选项:

  1. 使用 Citrus 钱包付款
  2. 使用信用卡/借记卡付款
  3. 使用网上银行付款

如果用户想使用 Citrus 钱包付款,那么我会要求用户使用他们的凭据登录 citrus。如果他们将使用第二或第三选项,例如使用信用卡/借记卡或网上银行付款,那么他们不需要登录。

我想使用 CitrusPay SDK 在我的应用程序中实现此功能。你能指出我的代码吗?

我已经有一个 Citrus pay 的演示,我已经检查过了。

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

我从上面的链接下载了演示。

请帮我解决这个问题。

4

1 回答 1

0
    [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];
                }
            }];
        }
    }];
于 2016-06-03T04:55:32.547 回答