內購開發(fā)中弃舒,發(fā)送receipt(憑證)+號變空格的解決辦法

我們在內購開發(fā)中亦鳞,購買成功后。要把這次交易的憑證發(fā)送給服務器棒坏。讓服務器去驗證這次交易是否真實。
拿到憑證的代碼:

NSURL* receiptURL = [[NSBundle mainBundle]appStoreReceiptURL];
//這里直接轉成base64是因為要發(fā)生給服務器遭笋。
NSString* receipt = [[NSData dataWithContentsOfURL:receiptURL]base64EncodedStringWithOptions:0];

但是發(fā)生過去后坝冕,發(fā)送一直憑證錯誤。導致浪費了瓦呼,三個小時時間在找問題上喂窟。后來测暗,對比發(fā)送前和發(fā)送后的憑證。發(fā)現(xiàn)磨澡!+變成了“ ”(空格)
研究后碗啄,這個特殊字符發(fā)送過去后,會發(fā)生改變稳摄。查資料后稚字,解決辦法如下:

NSURL* receiptURL = [[NSBundle mainBundle]appStoreReceiptURL];
    
NSString* receipt = [[NSData dataWithContentsOfURL:receiptURL]base64EncodedStringWithOptions:0];
receipt = [receipt stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet characterSetWithCharactersInString:@"#%<>[\\]^`{|}\"]+"].invertedSet];

加一行代碼就??OK!

實際開發(fā)中厦酬,我們還可以自己去官網上先驗證一下憑證,然后再發(fā)生給服務器:

這里有個有趣現(xiàn)象胆描,就是不加上面那段代碼,發(fā)送給蘋果也是正常的仗阅,估計蘋果那里做了處理昌讲。把空格替換為+號了。
NSURL* receiptURL = [[NSBundle mainBundle]appStoreReceiptURL];
//這里直接轉成base64是因為要發(fā)生給服務器减噪。
NSString* receipt = [[NSData dataWithContentsOfURL:receiptURL]base64EncodedStringWithOptions:0];

~~~//======這里有個有趣現(xiàn)象短绸,就是不加上面那段代碼,發(fā)送給蘋果也是正常的筹裕,估計蘋果那里做了處理醋闭。把空格替換為+號了。======


          .....................................
              .....................................
NSError *error;
    NSDictionary *requestContents = @{
                                      @"receipt-data": receipt
                                      };
    NSData *requestData = [NSJSONSerialization dataWithJSONObject:requestContents
                                                          options:0
                                                            error:&error];
    
    if (!requestData) { /* ... Handle error ... */ }
    
    // Create a POST request with the receipt data.
    //正式環(huán)境請?zhí)鎿Q下面的地址為https://buy.itunes.apple.com/verifyReceipt
    NSURL *storeURL = [NSURL URLWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"];
    NSMutableURLRequest *storeRequest = [NSMutableURLRequest requestWithURL:storeURL];
    [storeRequest setHTTPMethod:@"POST"];
    [storeRequest setHTTPBody:requestData];
    
    // Make a connection to the iTunes Store on a background queue.
    NSOperationQueue *queue = [[NSOperationQueue alloc] init];
    [NSURLConnection sendAsynchronousRequest:storeRequest queue:queue
                           completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
                               if (connectionError) {
                                   /* ... Handle error ... */
                               } else {
                                   NSError *error;
                                   NSDictionary *jsonResponse = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
                                   [[SKPaymentQueue defaultQueue] finishTransaction: transaction];
                                   if (!jsonResponse) { /* ... Handle error ...*/ }
                                   /* ... Send a response back to the device ... */
                               }
                           }];
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末饶碘,一起剝皮案震驚了整個濱河市目尖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌扎运,老刑警劉巖瑟曲,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異豪治,居然都是意外死亡洞拨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門负拟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來烦衣,“玉大人,你說我怎么就攤上這事掩浙』ㄒ鳎” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵厨姚,是天一觀的道長衅澈。 經常有香客問我,道長谬墙,這世上最難降的妖魔是什么今布? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任经备,我火速辦了婚禮,結果婚禮上部默,老公的妹妹穿的比我還像新娘侵蒙。我一直安慰自己,他們只是感情好傅蹂,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布纷闺。 她就那樣靜靜地躺著,像睡著了一般贬派。 火紅的嫁衣襯著肌膚如雪急但。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天搞乏,我揣著相機與錄音波桩,去河邊找鬼。 笑死请敦,一個胖子當著我的面吹牛镐躲,可吹牛的內容都是我干的。 我是一名探鬼主播侍筛,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼萤皂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了匣椰?” 一聲冷哼從身側響起裆熙,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎禽笑,沒想到半個月后入录,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡佳镜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年僚稿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蟀伸。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡蚀同,死狀恐怖,靈堂內的尸體忽然破棺而出啊掏,到底是詐尸還是另有隱情蠢络,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布迟蜜,位于F島的核電站刹孔,受9級特大地震影響,放射性物質發(fā)生泄漏小泉。R本人自食惡果不足惜芦疏,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望微姊。 院中可真熱鬧酸茴,春花似錦、人聲如沸兢交。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽配喳。三九已至酪穿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晴裹,已是汗流浹背被济。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涧团,地道東北人只磷。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像泌绣,于是被迫代替她去往敵國和親钮追。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內容