我按照以下步骤整合了非无耻的CCAvenue
GateWay
步骤: -
我有我的商家ID和访问代码(url,ip)。
//我的服务器已在CCAvenue Server中注册 2.my服务器调用Avenue获取RSA密钥
3.my服务器转发RSA密钥
4.once我得到了删除额外的行“\ n”,双引号“” - “”和“\”
// removing double quates
NSString * newReplacedString2 = [rsaKey stringByReplacingOccurrencesOfString:@"\"" withString:@""];
//removing /n in the key
NSString * newReplacedString = [newReplacedString2 stringByReplacingOccurrencesOfString:@"\\n" withString:@""];
//removing / in the key
NSString * newReplacedString1 = [newReplacedString stringByReplacingOccurrencesOfString:@"\\" withString:@""];
5.我把那把钥匙放在
之间rsaKey = [NSString stringWithFormat:@"-----BEGIN PUBLIC KEY-----\n%@\n-----END PUBLIC KEY-----\n",newReplacedString1];
//*******//***//****//**// output //*******//***//****//**//
-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuV7OdmPSutrlOE9lF3YdW4ymGn+qselCOycMk95Tobw1PcqCeAWkrnxUECpAdnHGrUKmFbEDHs3wnwzLTbfa3GvE5dvvmluug78X3RYEFQiMh1QpfS5fBfvs4WQKw7oigko3G0UwZLZFnZ4E4WKTQi4wbCgjwQJFMnMGJfFYNcoSJluVg/q8z3bVxfDOV0ZPWccmvA3bTf9YFHKCC3clscQrGf1NPnBGcBGm+s06t3EljoSmpjtyTgSiGrqBZ8TSCQxoyXxS+RkhNTigg6mqW9hIisxYYqlbzvRnCDhuqgZfmP7t65QG5raELVE7d+Ia+dgh024luZ9+vSk4Qb65DQIDAQAB -----END PUBLIC KEY-----
我正在使用CCTool加密金额和价格
NSString *myRequestString = [NSString stringWithFormat:@"amount=%@¤cy=%@",amount,currency];(2,INR)
CCTool *ccTool = [[CCTool alloc] init];
NSString *encVal = [ccTool encryptRSA:myRequestString key:rsaKey];
因为我在
中获得 Exe_Bad_AcessRSA * rsa = PEM_read_bio_RSA_PUBKEY(bufio,NULL,NULL,NULL);
rsa收到错误。
如何解决这个问题。请帮帮我。!!
答案 0 :(得分:3)
非常感谢你的支持,我终于解决了我的问题。
一旦你从你的服务器获得rsa密钥,你需要删除新的行" \ n",斜杠" \"和双引号" \""
NSString *rsaKey = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
这里我们需要将其转换为ba64encryption格式的输入。
https://gist.github.com/superwills/5415344#file-openssl-rsa-encryption-sample-L154
你需要将我们的字符串完全相同, 1." string"的每一行必须是64个字符宽。 2.必须以换行符终止
我正在更新我的Code.For Me它的工作正常。
NSLog(@"%@",rsaKey);
// NSString * rsaKey = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
// removing double quates
NSString * newReplacedString2 = [rsaKey stringByReplacingOccurrencesOfString:@"\"" withString:@""];
NSLog(@"%@",rsaKey);
//removing \n in the key
NSString * newReplacedString = [newReplacedString2 stringByReplacingOccurrencesOfString:@"\\n" withString:@""];
NSLog(@"%@",rsaKey);
//removing \ in the key
NSString * newReplacedString1 = [newReplacedString stringByReplacingOccurrencesOfString:@"\\" withString:@""];
NSLog(@"%@",newReplacedString1);
NSString * abc = [NSString stringWithFormat:@"%@", newReplacedString1];
NSMutableString *sss=[NSMutableString new];
int j=(int)([abc length]/63);
for (int i=0; i<=j; i++) {
int k= i*63;
NSString * newString;
if (i != j) {
newString = [abc substringWithRange:NSMakeRange(k,63)];
NSLog(@"%lu",(unsigned long)newString.length);
newString=[NSString stringWithFormat:@"%@",newString];
}else{
newString = [abc substringWithRange:NSMakeRange(k,[abc length]-k)];
NSLog(@"%lu",(unsigned long)newString.length);
if (newString.length !=0)
newString=[NSString stringWithFormat:@"%@",newString];
}
if (newString.length !=0)
[sss appendString:[NSString stringWithFormat:@"%@\n",newString]];
}
NSLog(@"%@",sss);
rsaKey = [NSString stringWithFormat:@"-----BEGIN PUBLIC KEY-----\n%@-----END PUBLIC KEY-----\n",sss];
NSLog(@"%@",rsaKey);
//Encrypting Card Details
NSString *myRequestString = [NSString stringWithFormat:@"amount=%@¤cy=%@",amount,currency];
CCTool *ccTool = [[CCTool alloc] init];
NSLog(@"emcrpted data skfjsf jakdfhjklfhjk%@",[ccTool encryptRSA:myRequestString key:rsaKey]);
Happy Coding. :)
// rsaKey = [rsaKey stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]]; // NSLog(@&#34;%@&#34;,rsaKey);
for message in prog_messages:
if message.name == rojer:
rojer_messages.append(message)
if message.attachments:
link = str(message).split("'")
rojer_pics.append(link[1])
links.write(str(link[1]) + '\n')
答案 1 :(得分:0)
这必须是您从服务器获取的返回密钥的问题。似乎这里没有正确配置服务器。我们遇到了同样的问题。只需将此错误报告发送到此电子邮件:service@ccavenue.com
其CCAvenue技术支持电子邮件。您可以询问他们的联系电话号码以获得技术支持,并且可以快速解决您在整合时可能遇到的任何技术问题。
答案 2 :(得分:0)
根据错误信息可以看出发生了内存泄漏。
我遇到过类似的错误。
你可以尝试我的方法。
Xcode - &gt;编辑方案 - &gt;运行 - &gt;诊断 - &gt;选择地址清理程序
运行您的项目。