WXApiRequestHandler.m 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. //
  2. // WXApiManager.m
  3. // SDKSample
  4. //
  5. // Created by Jeason on 15/7/14.
  6. //
  7. //
  8. #import "WXApi.h"
  9. #import "WXApiRequestHandler.h"
  10. #import "WXApiManager.h"
  11. @implementation WXApiRequestHandler
  12. #pragma mark - Public Methods
  13. + (NSString *)jumpToBizPay {
  14. //============================================================
  15. // V3&V4支付流程实现
  16. // 注意:参数配置请查看服务器端Demo
  17. // 更新时间:2015年11月20日
  18. //============================================================
  19. NSString *urlString = @"https://wxpay.wxutil.com/pub_v2/app/app_pay.php?plat=ios";
  20. //解析服务端返回json数据
  21. NSError *error;
  22. //加载一个NSURL对象
  23. NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];
  24. //将请求的url数据放到NSData对象中
  25. NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
  26. if ( response != nil) {
  27. NSMutableDictionary *dict = NULL;
  28. //IOS5自带解析类NSJSONSerialization从response中解析出数据放到字典中
  29. dict = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
  30. NSLog(@"url:%@",urlString);
  31. if(dict != nil){
  32. NSMutableString *retcode = [dict objectForKey:@"retcode"];
  33. if (retcode.intValue == 0){
  34. NSMutableString *stamp = [dict objectForKey:@"timestamp"];
  35. //调起微信支付
  36. PayReq* req = [[PayReq alloc] init];
  37. req.partnerId = [dict objectForKey:@"partnerid"];
  38. req.prepayId = [dict objectForKey:@"prepayid"];
  39. req.nonceStr = [dict objectForKey:@"noncestr"];
  40. req.timeStamp = stamp.intValue;
  41. req.package = [dict objectForKey:@"package"];
  42. req.sign = [dict objectForKey:@"sign"];
  43. [WXApi sendReq:req];
  44. //日志输出
  45. NSLog(@"appid=%@\npartid=%@\nprepayid=%@\nnoncestr=%@\ntimestamp=%ld\npackage=%@\nsign=%@",[dict objectForKey:@"appid"],req.partnerId,req.prepayId,req.nonceStr,(long)req.timeStamp,req.package,req.sign );
  46. return @"";
  47. }else{
  48. return [dict objectForKey:@"retmsg"];
  49. }
  50. }else{
  51. return @"服务器返回错误,未获取到json对象";
  52. }
  53. }else{
  54. return @"服务器返回错误";
  55. }
  56. }
  57. @end