简体   繁体   中英

How to generate “checksumGenerationURL” and “checksumValidationURL” in iOS PayTm integration?

I want to integrate Paytm SDK in my app. I have MerchantId and Merchant key . But i don't have those Urls. How to generate those URLS?

I integrated PayTM sdk into swift application and its working fine .

The issue where i got stuck about 15 days is the URL Generation :

checkSumGenerationURL and checkSumValidationURL .

Earlier i was using PayTM provided url but due to this it gets failed every time trying to payment .

so here is the final solution : I sit with my server team and then decided to handle it in our own server then after try it .

It works great .

So here is final set of parameters you need to pass : 
//Step 1: Create a default merchant config object
    PGMerchantConfiguration *mc = [PGMerchantConfiguration defaultConfiguration];

    //Step 2: If you have your own checksum generation and validation url set this here. Otherwise use the default Paytm urls
    mc.checksumGenerationURL = @"generate checksum url by handling in own server";
    mc.checksumValidationURL =   @"generate checksum url by handling in own server";


    //Step 3: Create the order with whatever params you want to add. But make sure that you include the merchant mandatory params
    NSMutableDictionary *orderDict = [NSMutableDictionary new];
    //Merchant configuration in the order object
    orderDict[@"MID"] = @"abc1111"; 
    orderDict[@"CHANNEL_ID"] = @"WAP";
    orderDict[@"INDUSTRY_TYPE_ID"] = @"Education";
    orderDict[@"WEBSITE"] = @"companyname";
    //Order configuration in the order object
    orderDict[@"TXN_AMOUNT"] = @"100";
    orderDict[@"ORDER_ID"] = [Feepayment generateOrderIDWithPrefix:@"111"];
    orderDict[@"REQUEST_TYPE"] = @"DEFAULT";
    orderDict[@"CUST_ID"] = @"abc7777";

Here is checksumgeneration method in iOS Swift2.2 (app side)

//Call this method createCheckSumString(hashValue)

Where hasValue is the paramater in which you added all your PAYTM parameter , its a string type .

Here is method :

func createCheckSumString(input: String) -> String {
    let cstr = input.cStringUsingEncoding(NSUTF8StringEncoding)
    var data = NSData(bytes: cstr, length: input.length)
    var digest = [UInt8](count: CC_SHA512_DIGEST_LENGTH, repeatedValue: 0)
    // This is an iOS5-specific method.
    // It takes in the data, how much data, and then output format, which in this case is an int array.
    CC_SHA512(data.bytes, Int(data.length), digest)
    var output = String(capacity: CC_SHA512_DIGEST_LENGTH * 2)
    // Parse through the CC_SHA256 results (stored inside of digest[]).
    for i in 0..<CC_SHA512_DIGEST_LENGTH {
        output += String(format: "%02x", digest[i])
    }
    return output
}

NOTE - import CommonDigest ( In objective c this way we add so #include <CommonCrypto/CommonDigest.h> so that CC_SHA512_DIGEST_LENGTH works Feel free to share comments.

You can generate checksum from your server only (it is for SDK 2.0 and latest version ). Paytm do provide PHP file (java, python too) for checksum generation that you need to upload on your server. once upload done then change the merchant key - go inside lib folder and update key on config.paytm.php file . You can get reference from here for checksum generation using PHP file and the android code - http://www.blueappsoftware.in/android/blog/paytm-integration-sdk-2-1-android/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM