Площадь недавно удалила требование авторизации продавца OAuth, как описано here в разделе «Инициирование транзакции Square Register из вашего приложения».iOS Квадратный регистр Popover OpenURL Issue
Когда мое приложение выскакивает к приложению Square регистра, предупреждение появляется всплывающее окно на Площадь приложении говорит:
"API Error: No client ID specified"
несмотря на то, что я четко перечислить мой «client_id» в моем приложении, когда я взываю к открытый квадрат. Мой код ниже. Любые идеи, как это исправить?
-(void)squarePaymentWithName:(NSString *)name{
//Specify amount of money to charge
float orderPriceFloat = [Order orderTotalPrice];
float orderPriceFloatCents = orderPriceFloat * 100;
NSInteger orderPriceFloatCentsInteger = [[NSNumber numberWithFloat:orderPriceFloatCents] integerValue];
NSString *amountString = [NSString stringWithFormat:@"%ld", (long)orderPriceFloatCentsInteger];
NSDictionary *squareDictionary = @{@"callback_url": @"<CALLBACK_URL>",
@"client_id": @"<CLIENT_ID>",
@"version": @"1.2",
@"amount_money":
@{@"amount": amountString,
@"currency_mode":@"USD"
},
@"options":
@{@"supported_tender_types": @[@"CREDIT_CARD", @"SQUARE_GIFT_CARD"],
@"auto_return": @"true"
}
};
NSString *jsonString = [NSString stringWithFormat:@"%@", squareDictionary];
NSString *encodedString = [jsonString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; //encode the string
NSString *scheme = [NSString stringWithFormat:@"square-commerce-v1://payment/create?data=%@", encodedString]; //input the string to the url
UIApplication *application = [UIApplication sharedApplication];
NSURL *URL = [NSURL URLWithString:scheme];
BOOL canOpen = [application canOpenURL:URL]; //open the url
[application openURL:URL];
}
NSLog из jsonString является:
{
"amount_money" = {
amount = 250;
"currency_mode" = USD;
};
"callback_url" = CALLBACK_URL;
"client_id" = CLIENT_ID;
options = {
"auto_return" = true;
"supported_tender_types" = (
"CREDIT_CARD",
"SQUARE_GIFT_CARD"
);
};
version = "1.2";
}
NSLog из encodedString является:
И, как записку, 'CALLBACK_URL' и 'CLIENT_ID' вход I являются заполнители, так как я не хотел вводить реальные значения.
Спасибо!
Вы пытались использовать наш SDK? Это делает немало вещей, которые вы пытаетесь сделать намного проще. https://github.com/square/SquareRegisterSDK-iOS – tristansokol
В моем родном приложении iOS используется Cocoa Pod SquareRegisterSDK. В качестве примечания, мое приложение является сторонним приложением, которое выводит пользователей на квадрат для оплаты, а затем выводит их обратно в мое приложение. – mdimarca
Я предполагаю, что проблема заключается в том, чтобы преобразовать NSDictionary, который я создаю, с данными в строку, но у меня не получилось работать, несмотря на то, что они возились. Любые идеи, из которых может возникнуть проблема? – mdimarca