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?
问题:
回答1:
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.
回答2:
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/