ViewController.m 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. //
  2. // ViewController.m
  3. // Demo
  4. //
  5. // Created by BensonZhang on 15/11/13.
  6. // Copyright © 2015年 xunlian. All rights reserved.
  7. //
  8. #import "ViewController.h"
  9. #import "AllPayRequest.h"
  10. #import "PayOrder.h"
  11. #import "DateUtil.h"
  12. #import "SignUtil.h"
  13. #import "AllPaySDK.h"
  14. @interface ViewController ()
  15. @end
  16. @implementation ViewController
  17. - (void)viewDidLoad {
  18. [super viewDidLoad];
  19. // [self.view setBackgroundColor:[UIColor yellowColor]];
  20. UIButton * btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  21. btn1.tag = 1;
  22. btn1.frame = CGRectMake(80, 60, 200, 50);
  23. [btn1 setTitle:@"微信支付" forState:UIControlStateNormal];
  24. [btn1 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
  25. [self.view addSubview:btn1];
  26. UIButton * btn2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  27. btn2.tag = 2;
  28. btn2.frame = CGRectMake(80, 120, 200, 50);
  29. [btn2 setTitle:@"支付宝支付" forState:UIControlStateNormal];
  30. [btn2 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
  31. [self.view addSubview:btn2];
  32. UIButton * btn3 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  33. btn3.tag = 3;
  34. btn3.frame = CGRectMake(80, 180, 200, 50);
  35. [btn3 setTitle:@"银联支付" forState:UIControlStateNormal];
  36. [btn3 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
  37. [self.view addSubview:btn3];
  38. }
  39. -(void)btnClick:(UIButton *)btn
  40. {
  41. NSMutableDictionary * paramDic=[[NSMutableDictionary alloc]init];
  42. [paramDic setObject:@"VER000000005" forKey:@"version"];
  43. [paramDic setObject:@"UTF-8" forKey:@"charSet"];
  44. [paramDic setObject:@"PURC" forKey:@"transType"];
  45. [paramDic setObject:[DateUtil getDate:@"YYYYMMddHHmmss"] forKey:@"orderNum"];
  46. [paramDic setObject:@"0.1" forKey:@"orderAmount"];
  47. [paramDic setObject:@"CNY" forKey:@"orderCurrency"];
  48. [paramDic setObject:@"nil" forKey:@"frontURL"];
  49. [paramDic setObject:@"https://testapi.allpayx.com/test" forKey:@"backURL"];
  50. [paramDic setObject:@"nil" forKey:@"merReserve"];
  51. [paramDic setObject:@"test商品" forKey:@"goodsInfo"];
  52. [paramDic setObject:@"000000000000015" forKey:@"merID"];
  53. [paramDic setObject:@"99020344" forKey:@"acqID"];
  54. [paramDic setObject:[DateUtil getDate:@"YYYYMMddHHmmss"] forKey:@"transTime"];
  55. [paramDic setObject:@"MD5" forKey:@"signType"];
  56. NSString *detailInfo = @"IFt7Imdvb2RzX25hbWUiOiLkuIDkuKrlj4jlpKflj4jlnIbnmoToi7nmnpwiLCJxdWFudGl0eSI6IjEifSx7Imdvb2RzX25hbWUiOiLljY7kuLpQMjAgcGx1cyIsInF1YW50aXR5IjoiNCJ9XQ==";
  57. [paramDic setObject:detailInfo forKey:@"detailInfo"];
  58. [paramDic setObject:@"APP" forKey:@"tradeFrom"];
  59. if (btn.tag == 1)//微信
  60. {
  61. [paramDic setObject:@"WX" forKey:@"paymentSchema"];
  62. }
  63. if (btn.tag == 2)//支付宝
  64. {
  65. [paramDic setObject:@"APMP" forKey:@"paymentSchema"];
  66. }
  67. if (btn.tag == 3)//银联
  68. {
  69. [paramDic setObject:@"UP" forKey:@"paymentSchema"];
  70. }
  71. [self startPay:paramDic];
  72. }
  73. -(void)startPay:(NSMutableDictionary*)paramDic
  74. {
  75. [paramDic setObject:[SignUtil getSign:paramDic] forKey:@"signature"];
  76. NSString *url = @"https://testapi.allpayx.com/api/unifiedorder";
  77. // NSString *url = @"https://api.allpayx.com/api/unifiedorder";
  78. [AllPayRequest postRequestWithURL:url paramters:paramDic succeed:^(id finResponseData)
  79. {
  80. NSError *error;
  81. NSDictionary * diction = [NSJSONSerialization JSONObjectWithData:finResponseData options:NSJSONReadingMutableContainers error:&error];
  82. if(!error){
  83. NSLog(@"-----输出数据---%@",diction);
  84. [AllPaySDK pay:[diction objectForKey:@"tn"] mode:NO scheme:@"com.xxx.xxx" ViewController:self onResult: ^(NSDictionary *resultDic) {
  85. NSData *jsonData = [NSJSONSerialization dataWithJSONObject:resultDic options:NSJSONWritingPrettyPrinted error:nil];
  86. NSString *message =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
  87. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"支付结果" message:message delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
  88. [alert show];
  89. }];
  90. }else{
  91. NSString * dataString = [[NSString alloc]initWithData:finResponseData encoding:NSUTF8StringEncoding];
  92. NSLog(@"参数出错===\n %@",dataString);
  93. }
  94. } failed:^(id faiResponseData) {
  95. }];
  96. }
  97. - (NSString *)getCurrentLanguage
  98. {
  99. NSArray *languages = [NSLocale preferredLanguages];
  100. NSString *currentLanguage = [languages objectAtIndex:0];
  101. NSLog( @"%@" , currentLanguage);
  102. return currentLanguage;
  103. }
  104. @end