2017-03-06 3 views
0

Ich habe payumoney Zahlung Gateway integriert. Und ich bin in der Lage, mit dem Schlüssel korrekten Hash zu erstellen, aber am Ende bekomme ich eine Warnmeldung als "Schlüssel ist nicht gültig". Was wäre das Problem?iOS PayUMoney SDK-Schlüssel ist nicht gültig

Hier ist der Code. Ich benutze den Link "https://www.payumoney.com/payment-gateway-integration-guide.html", um das Payumoney SDK herunterzuladen.

- (IBAction)startPaymentTapped:(id)sender { 

    [self setPaymentParameters]; 

    //Start the payment flow 
    PUMMainVController *paymentVC = [[PUMMainVController alloc] init]; 
    UINavigationController *paymentNavController = [[UINavigationController alloc] initWithRootViewController:paymentVC]; 

    [self presentViewController:paymentNavController 
         animated:YES 
        completion:nil]; 
} 

- (void)setPaymentParameters { 
    self.params = [PUMRequestParams sharedParams]; 
    self.params.environment = PUMEnvironmentProduction; 
    self.params.amount = self.amount.text; 
    self.params.key = @"mykeyvalue"; 
    self.params.merchantid = @"merchantid"; 
    self.params.txnid = [self getRandomString:2]; 
    self.params.surl = @"https://www.payumoney.com/mobileapp/payumoney/success.php"; 
    self.params.furl = @"https://www.payumoney.com/mobileapp/payumoney/failure.php"; 
    self.params.delegate = self; 
    self.params.firstname = self.firstname.text; 
    self.params.productinfo = self.productinfo.text; 
    self.params.email = self.email.text; 
    self.params.phone = @""; 
    self.params.udf1 = @""; 
    self.params.udf2 = @""; 
    self.params.udf3 = @""; 
    self.params.udf4 = @""; 
    self.params.udf5 = @""; 
    self.params.udf6 = @""; 
    self.params.udf7 = @""; 
    self.params.udf8 = @""; 
    self.params.udf9 = @""; 
    self.params.udf10 = @""; 

    self.params.hashValue = [self getHash]; 

} 

- (NSString *)getRandomString:(NSInteger)length { 
    NSMutableString *returnString = [NSMutableString stringWithCapacity:length]; 
    NSString *numbers = @""; 

    // First number cannot be 0 
    [returnString appendFormat:@"%C", [numbers characterAtIndex:(arc4random() % ([numbers length]-1))+1]]; 

    for (int i = 1; i < length; i++) { 
     [returnString appendFormat:@"%C", [numbers characterAtIndex:arc4random() % [numbers length]]]; 
    } 
    return returnString; 
} 
- (NSString*)getHash { 

    NSString *hashSequence = [NSString stringWithFormat:@"mykeyvalue|%@|%@|%@|%@|%@|||||||||||salt",self.params.txnid, self.params.amount, self.params.productinfo,self.params.firstname, self.params.email]; 

    NSString *rawHash = [[self createSHA512:hashSequence] description]; 
    NSString *hash = [[[rawHash stringByReplacingOccurrencesOfString:@"<" withString:@""]stringByReplacingOccurrencesOfString:@">" withString:@""]stringByReplacingOccurrencesOfString:@" " withString:@""]; 

    return hash; 
} 
- (NSData *) createSHA512:(NSString *)source { 

    const char *s = [source cStringUsingEncoding:NSASCIIStringEncoding]; 
    NSData *keyData = [NSData dataWithBytes:s length:strlen(s)]; 
    uint8_t digest[CC_SHA512_DIGEST_LENGTH] = {0}; 
    CC_SHA512(keyData.bytes, (CC_LONG)keyData.length, digest); 

    NSData *output = [NSData dataWithBytes:digest length:CC_SHA512_DIGEST_LENGTH]; 
    NSLog(@"out --------- %@",output); 
    return output; 
} 
+0

was der Schlüssel, den Sie in diesen zwei Orten übergeben haben 'self.params.key = @" mykeyvalue "; self.params.merchantid = @ "merchantid"; ' –

+0

Daten, die ich vom Server-Team bekommen habe, zB: self.params.key @" mdyCKV "; self.params.merchantid = @ "4914106"; [Dummy-Werte] –

Antwort

1

Bitte Daten überprüfen, wenn Sie payumoney für erstellen Hash-Schlüssel mit Server-API-Daten für erstellen Sie Ihren Hash-Schlüssel senden.

0
self.params.environment = PUMEnvironmentProduction; 

Through the above code you can pay using net banking successfully. If you want to test 
your payment gateway for dummy credit/debit card some changes are required. I am 
listing it down. Try it. 

Instead of 
self.params.environment = PUMEnvironmentProduction; //write 
self.params.environment = PUMEnvironmentTest; 

change the urls as 
self.params.surl = @"https://test.payumoney.com/mobileapp/payumoney/success.php"; 
self.params.furl = @"https://test.payumoney.com/mobileapp/payumoney/failure.php"; 
// We need test url for testing purpose. 

Make sure you have activated your payumoney account by clicking on link that you got in mail. 
Use the below dummy master card details 

Test Card Name: any name 
Test Card Number: 5123456789
Test CVV: 123 
Test Expiry: May 2017