ViewController.m 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  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. UIButton * btn4 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  39. btn4.tag = 4;
  40. btn4.frame = CGRectMake(80, 240, 200, 50);
  41. [btn4 setTitle:@"apple pay 支付" forState:UIControlStateNormal];
  42. [btn4 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
  43. [self.view addSubview:btn4];
  44. UIButton * btn5 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
  45. btn5.tag = 5;
  46. btn5.frame = CGRectMake(80, 300, 200, 50);
  47. [btn5 setTitle:@"A+统一收银台" forState:UIControlStateNormal];
  48. [btn5 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
  49. [self.view addSubview:btn5];
  50. }
  51. -(void)btnClick:(UIButton *)btn
  52. {
  53. NSMutableDictionary * paramDic=[[NSMutableDictionary alloc]init];
  54. [paramDic setObject:@"VER000000005" forKey:@"version"];
  55. [paramDic setObject:@"UTF-8" forKey:@"charSet"];
  56. [paramDic setObject:@"PURC" forKey:@"transType"];
  57. [paramDic setObject:[DateUtil getDate:@"YYYYMMddHHmmss"] forKey:@"orderNum"];
  58. [paramDic setObject:@"0.1" forKey:@"orderAmount"];
  59. [paramDic setObject:@"CNY" forKey:@"orderCurrency"];
  60. [paramDic setObject:@"nil" forKey:@"frontURL"];
  61. [paramDic setObject:@"https://testapi.allpayx.com/test" forKey:@"backURL"];
  62. [paramDic setObject:@"nil" forKey:@"merReserve"];
  63. [paramDic setObject:@"test商品" forKey:@"goodsInfo"];
  64. [paramDic setObject:@"600039253112113" forKey:@"merID"];
  65. [paramDic setObject:@"99020344" forKey:@"acqID"];
  66. [paramDic setObject:[DateUtil getDate:@"YYYYMMddHHmmss"] forKey:@"transTime"];
  67. [paramDic setObject:@"MD5" forKey:@"signType"];
  68. NSString *detailInfo = @"IFt7Imdvb2RzX25hbWUiOiLkuIDkuKrlj4jlpKflj4jlnIbnmoToi7nmnpwiLCJxdWFudGl0eSI6IjEifSx7Imdvb2RzX25hbWUiOiLljY7kuLpQMjAgcGx1cyIsInF1YW50aXR5IjoiNCJ9XQ==";
  69. [paramDic setObject:detailInfo forKey:@"detailInfo"];
  70. [paramDic setObject:@"APP" forKey:@"tradeFrom"];
  71. if (btn.tag == 1)//微信
  72. {
  73. [paramDic setObject:@"WX" forKey:@"paymentSchema"];
  74. }
  75. if (btn.tag == 2)//支付宝
  76. {
  77. [paramDic setObject:@"AP" forKey:@"paymentSchema"];
  78. }
  79. if (btn.tag == 3)//银联
  80. {
  81. [paramDic setObject:@"UP" forKey:@"paymentSchema"];
  82. }
  83. if (btn.tag == 4)//Apple
  84. {
  85. [paramDic setObject:@"APP" forKey:@"paymentSchema"];
  86. }
  87. if (btn.tag == 5)//A+
  88. {
  89. [paramDic setObject:@"AliPayPlus" forKey:@"paymentSchema"];
  90. [paramDic setObject:@"IOS" forKey:@"OsType"];
  91. [paramDic setObject:@"connect_wallet" forKey:@"sub_brand_code"];
  92. }
  93. [self startPay:paramDic];
  94. }
  95. -(void)startPay:(NSMutableDictionary*)paramDic
  96. {
  97. [paramDic setObject:[SignUtil getSign:paramDic] forKey:@"signature"];
  98. NSString *url = @"https://testapi.allpayx.com/api/unifiedorder";
  99. // NSString *url = @"https://api.allpayx.com/api/unifiedorder";
  100. [AllPayRequest postRequestWithURL:url paramters:paramDic succeed:^(id finResponseData)
  101. {
  102. NSError *error;
  103. NSDictionary * diction = [NSJSONSerialization JSONObjectWithData:finResponseData options:NSJSONReadingMutableContainers error:&error];
  104. if(!error){
  105. NSLog(@"-----输出数据---%@",diction);
  106. [AllPaySDK pay:[diction objectForKey:@"tn"] mode:NO scheme:@"com.xxx.xxx" ViewController:self onResult: ^(NSDictionary *resultDic) {
  107. NSData *jsonData = [NSJSONSerialization dataWithJSONObject:resultDic options:NSJSONWritingPrettyPrinted error:nil];
  108. NSString *message =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
  109. UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"支付结果" message:message delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
  110. [alert show];
  111. }];
  112. }else{
  113. NSString * dataString = [[NSString alloc]initWithData:finResponseData encoding:NSUTF8StringEncoding];
  114. NSLog(@"参数出错===\n %@",dataString);
  115. }
  116. } failed:^(id faiResponseData) {
  117. }];
  118. }
  119. - (NSString *)getCurrentLanguage
  120. {
  121. NSArray *languages = [NSLocale preferredLanguages];
  122. NSString *currentLanguage = [languages objectAtIndex:0];
  123. NSLog( @"%@" , currentLanguage);
  124. return currentLanguage;
  125. }
  126. @end