iOS 微信提示:簽名失敗

這幾天一直沒(méi)細(xì)搞橘荠,后臺(tái)那邊說(shuō)在弄著我這邊就沒(méi)管礁遣,但是好幾天了還沒(méi)有成功,自己也翻閱了下官方文檔和其他項(xiàng)目碗殷。發(fā)現(xiàn)大部分的簽名都是后臺(tái)搞得精绎,所以我就記錄下防止以后再出現(xiàn)類似情況⌒科蓿總結(jié)了以下幾點(diǎn)代乃。

1.首先確認(rèn)后臺(tái)預(yù)支付的訂單是否和微信支付對(duì)象PayReq中的屬性值是否一一對(duì)應(yīng)

PayReq*request = [[PayReqalloc]init];

// 商家id,在注冊(cè)的時(shí)候給的

request.partnerId= [objDictobjectForKey:@"mch_id"]?:@"";

// 預(yù)支付訂單這個(gè)是后臺(tái)跟微信服務(wù)器交互后仿粹,微信服務(wù)器傳給你們服務(wù)器的搁吓,你們服務(wù)器再傳給你

?request.prepayId= [objDictobjectForKey:@"prepay_id"]?:@"";

// 根據(jù)財(cái)付通文檔填寫的數(shù)據(jù)和簽名//這個(gè)比較特殊,是固定的吭历,只能是即req.package = Sign=WXPay

?request.package= [objDictobjectForKey:@"package"]?:@"";

// 隨機(jī)編碼擎浴,為了防止重復(fù)的,在后臺(tái)生成

?request.nonceStr= [objDictobjectForKey:@"nonce_str"]?:@"";

// 這個(gè)是時(shí)間戳毒涧,也是在后臺(tái)生成的贮预,為了驗(yàn)證支付的

inttimestam = [[objDictobjectForKey:@"timestamp"]intValue];

?request.timeStamp= (uint32_t)timestam;

//后臺(tái)的簽名 ? ? ? ? ? ? ? ? ? ? ??

?request.sign= [objDictobjectForKey:@"sign"]?:@"";

//自己的簽名

request.sign = [self createMD5SingForPayWithAppID:[objDict objectForKey:@"appid"]?:@"" partnerid:request.partnerId prepayid:request.prepayId package:request.package noncestr:request.nonceStr timestamp:request.timeStamp];

[WXApisendReq:requestcompletion:^(BOOLsuccess) {

FBLog(@"微信支付結(jié)果::::%@",success==YES?@"1":@"2");

?}];

2.確認(rèn)sign 的值贝室,微信中的支付對(duì)象有一個(gè)sing 屬性,該屬性為簽名仿吞。該屬性的值比較特殊滑频,需要后臺(tái)做好二次簽名后才可以直接使用,如果后臺(tái)沒(méi)有做二次簽名需要我們自己做的話需要用一下方法對(duì)唤冈,sign 值進(jìn)行處理

-(NSString*)createMD5SingForPayWithAppID:(NSString*)appid_keypartnerid:(NSString*)partnerid_keyprepayid:(NSString*)prepayid_keypackage:(NSString*)package_keynoncestr:(NSString*)noncestr_keytimestamp:(UInt32)timestamp_key{

? ? ? ? NSMutableDictionary *signParams = [NSMutableDictionary dictionary];

? ? ? ? [signParamssetObject:appid_keyforKey:@"appid"];//微信appid 例如wxfb132134e5342

? ? ? ? [signParamssetObject:noncestr_keyforKey:@"noncestr"];//隨機(jī)字符串

? ? ? ? [signParamssetObject:package_keyforKey:@"package"];//擴(kuò)展字段? 參數(shù)為 Sign=WXPay

? ? ? ? [signParamssetObject:partnerid_keyforKey:@"partnerid"];//商戶賬號(hào)

? ? ? ? [signParamssetObject:prepayid_keyforKey:@"prepayid"];//此處為統(tǒng)一下單接口返回的預(yù)支付訂單號(hào)

? ? ? ? [signParamssetObject:[NSStringstringWithFormat:@"%u",timestamp_key]forKey:@"timestamp"];//時(shí)間戳


? ? ? ? NSMutableString*contentString? =[NSMutableStringstring];

? ? ? ? NSArray*keys = [signParamsallKeys];

? ? ? ? //按字母順序排序

? ? ? ? NSArray*sortedArray = [keyssortedArrayUsingComparator:^NSComparisonResult(idobj1,idobj2) {

? ? ? ? ? ? return [obj1 compare:obj2 options:NSNumericSearch];

? ? ? ? }];

? ? ? ? //拼接字符串

? ? ? ? for(NSString*categoryIdinsortedArray) {

? ? ? ? ? ? if(![[signParamsobjectForKey:categoryId]isEqualToString:@""]

? ? ? ? ? ? ? ? && ![[signParamsobjectForKey:categoryId]isEqualToString:@"sign"]

? ? ? ? ? ? ? ? && ![[signParamsobjectForKey:categoryId]isEqualToString:@"key"]){

? ? ? ? ? ? ? ? [contentStringappendFormat:@"%@=%@&", categoryId, [signParamsobjectForKey:categoryId]];

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? //添加商戶密鑰key字段? API 密鑰

? ? ? ? [contentStringappendFormat:@"key=%@", @"自己項(xiàng)目的商戶秘鑰"];

? ? NSString*result = [selfmd5String:contentString];//md5加密

? ? returnresult;

}

3.MD5加密

- (NSString*)md5String:(NSMutableString*)contentString{

? ? if(self==nil|| [contentStringlength] ==0)returnnil;

? ? unsigned char digest[CC_MD5_DIGEST_LENGTH], i;

? ? CC_MD5([contentString UTF8String], (int)[contentString lengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);

? ? NSMutableString *ms = [NSMutableString string];

? ? for(i=0;i<CC_MD5_DIGEST_LENGTH;i++){

? ? ? ? [msappendFormat:@"%02x", (int)(digest[i])];

? ? }

? ? return[mscopy];

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末峡迷,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子你虹,更是在濱河造成了極大的恐慌绘搞,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件傅物,死亡現(xiàn)場(chǎng)離奇詭異夯辖,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)董饰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門蒿褂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人卒暂,你說(shuō)我怎么就攤上這事啄栓。” “怎么了也祠?”我有些...
    開(kāi)封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵昙楚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我诈嘿,道長(zhǎng)堪旧,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任永淌,我火速辦了婚禮崎场,結(jié)果婚禮上佩耳,老公的妹妹穿的比我還像新娘遂蛀。我一直安慰自己,他們只是感情好干厚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布李滴。 她就那樣靜靜地躺著,像睡著了一般蛮瞄。 火紅的嫁衣襯著肌膚如雪所坯。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天挂捅,我揣著相機(jī)與錄音芹助,去河邊找鬼。 笑死托呕,一個(gè)胖子當(dāng)著我的面吹牛污桦,可吹牛的內(nèi)容都是我干的疲牵。 我是一名探鬼主播烹玉,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼蓄喇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼造烁!你這毒婦竟也來(lái)了锦溪?” 一聲冷哼從身側(cè)響起参萄,我...
    開(kāi)封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤累驮,失蹤者是張志新(化名)和其女友劉穎酣倾,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體谤专,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡躁锡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了毒租。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稚铣。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖墅垮,靈堂內(nèi)的尸體忽然破棺而出惕医,到底是詐尸還是另有隱情,我是刑警寧澤算色,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布抬伺,位于F島的核電站,受9級(jí)特大地震影響灾梦,放射性物質(zhì)發(fā)生泄漏峡钓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一若河、第九天 我趴在偏房一處隱蔽的房頂上張望能岩。 院中可真熱鬧,春花似錦萧福、人聲如沸拉鹃。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)膏燕。三九已至,卻和暖如春悟民,著一層夾襖步出監(jiān)牢的瞬間坝辫,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工射亏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留近忙,地道東北人竭业。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像及舍,于是被迫代替她去往敵國(guó)和親永品。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 前提是已經(jīng)創(chuàng)建完應(yīng)用了在微信的官網(wǎng)上击纬。根據(jù)上一篇的微信獲得支付能力的步驟鼎姐,這一篇主要制作微信支付的demo「瘢回顧上...
    陽(yáng)光的大男孩兒閱讀 24,273評(píng)論 25 50
  • 與微信官方簽署在線協(xié)議 導(dǎo)入微信支付需要的SDK相關(guān)文件 配置App跳轉(zhuǎn)的白名單 添加URL Schemes 配置...
    閣子菌閱讀 418評(píng)論 0 7
  • 序列化(Serialization)與反序列化(Deserialization)是RESTful API 開(kāi)發(fā)中繞...
    向日葵1884閱讀 297評(píng)論 0 0
  • 簡(jiǎn)單生活 忘掉所有別人所說(shuō)的 給予我的或者搶奪走的 那些利益或者疼痛 沉浸在自己構(gòu)造的房子里 房子的頂部有一扇窗 ...
    飛翔的多啦A夢(mèng)閱讀 106評(píng)論 0 0
  • 近期閱讀了一本書《平如美棠》炕桨,書中講述了上個(gè)世紀(jì)的一對(duì)平凡夫妻的愛(ài)情故事。 年少談戀愛(ài)的時(shí)候肯腕,我們都衣食無(wú)憂献宫。那時(shí)...
    元哥兒閱讀 101評(píng)論 0 0