10分鐘搞定支付寶和微信支付 的 各種填坑

填坑
支付寶填坑是每個(gè)接入支付寶必經(jīng)之路输枯,下面是我接入支付寶遇到的問(wèn)題匯總,希望大家在接入的路上少一點(diǎn)彎路

問(wèn)題1. Util/base64.h:63:21: Cannot find interface declaration for ‘NSObject’, superclass of ‘Base64’

解決辦法:
這是base64.h中沒(méi)有加入#import <Foundation/Foundation.h> 系統(tǒng)庫(kù)文件導(dǎo)致暂氯,這個(gè)錯(cuò)誤報(bào)錯(cuò)方法直接想噴它一臉。報(bào)錯(cuò)方式太惡心罢缸。

問(wèn)題2.截圖告知你什么問(wèn)題


530EA189-0A5A-4AEB-82BF-E30B99F5418B.png
解決辦法:
這個(gè)問(wèn)題可以同上的变擒,心情好分俯,截圖再次說(shuō)明下肾筐,在 openssl_wrapper.h中#import <Foundation/Foundation.h> 庫(kù)即可

問(wèn)題3.Util/openssl_wrapper.m:11:9: ‘rsa.h’ file not found

解決辦法:
(1),萬(wàn)年老坑缸剪,只要你接入支付寶百分百要遇到的問(wèn)題局齿,所以習(xí)以為常吧
(2),在Build setting中搜索search橄登,找到Header Search Paths,添加$(PROJECT_DIR)/openssl和$(PROJECT_DIR) 如下圖:
(3)讥此,重要 問(wèn)題說(shuō)三遍拢锹,這是網(wǎng)絡(luò)找到的到答案后繼續(xù)有同樣的坑,自己的解決方案,
Header Search Paths   $(PROJECT_DIR)/ali中輸入這個(gè)
Framework Search Paths  和 Library Search Paths 繼續(xù)是$(inherited)  和  $(PROJECT_DIR)/ali
‘rsa.h’ file not found  的解決方案
(4)萄喳,由于后期多項(xiàng)目的接入卒稳,讓我知道一個(gè)算是萬(wàn)能方法吧,就是始終保持Header Search Paths 和 Library Search Paths 都能找到你導(dǎo)入的openssl的正確路徑即可他巨,已嘗試多遍充坑,是能解決以上問(wèn)題(求黑)
EB1487E2-FFA9-494B-923D-C5F7CD1AF1FC.png

5C736AB8-F0FB-423C-973D-3ED9301E27C0.png

問(wèn)題4.這類(lèi)錯(cuò)很多,大概有這些:這些可能是庫(kù)文件沒(méi)有導(dǎo)入染突,導(dǎo)致的

“_CNCopyCurrentNetworkInfo”, referenced from:
Undefined symbols for architecture x86_64:
"_CNCopyCurrentNetworkInfo", referenced from:
-[APayReachability wifiInterface] in AlipaySDK
+[internal_DeviceInfo getSSIDInfo] in AlipaySDK
+[internal_DeviceInfo getNetworkInfo] in AlipaySDK
"_CNCopySupportedInterfaces", referenced from:
-[APayReachability wifiInterface] in AlipaySDK
+[internal_DeviceInfo getSSIDInfo] in AlipaySDK
+[internal_DeviceInfo getNetworkInfo] in AlipaySDK
"_CTRadioAccessTechnologyCDMA1x", referenced from:
-[AliSecXReachability networkStatusForFlags:] in AlipaySDK
"_CTRadioAccessTechnologyEdge", referenced from:
-[AliSecXReachability networkStatusForFlags:] in AlipaySDK
"_CTRadioAccessTechnologyGPRS", referenced from:
-[AliSecXReachability networkStatusForFlags:] in AlipaySDK
"_CTRadioAccessTechnologyLTE", referenced from:
-[AliSecXReachability networkStatusForFlags:] in AlipaySDK
"OBJC_CLASS$_CMMotionManager", referenced from:
objc-class-ref in AlipaySDK
"OBJC_CLASS$_CTTelephonyNetworkInfo", referenced from:
objc-class-ref in AlipaySDK
"_SCNetworkReachabilityCreateWithAddress", referenced from:
+[APayReachability reachabilityWithAddress:] in AlipaySDK
+[AliSecXReachability reachabilityWithAddress:] in AlipaySDK
"_SCNetworkReachabilityCreateWithName", referenced from:
+[APayReachability reachabilityWithHostname:] in AlipaySDK
+[AliSecXReachability reachabilityWithHostName:] in AlipaySDK
"_SCNetworkReachabilityGetFlags", referenced from:
-[APayReachability isReachable] in AlipaySDK
-[APayReachability isReachableViaWWAN] in AlipaySDK
-[APayReachability isReachableViaWiFi] in AlipaySDK
-[APayReachability connectionRequired] in AlipaySDK
-[APayReachability isConnectionOnDemand] in AlipaySDK
-[APayReachability isInterventionRequired] in AlipaySDK
-[APayReachability reachabilityFlags] in AlipaySDK
...
"_SCNetworkReachabilityScheduleWithRunLoop", referenced from:
-[AliSecXReachability startNotifier] in AlipaySDK
"_SCNetworkReachabilitySetCallback", referenced from:
-[APayReachability startNotifier] in AlipaySDK
-[APayReachability stopNotifier] in AlipaySDK
-[AliSecXReachability startNotifier] in AlipaySDK
"_SCNetworkReachabilitySetDispatchQueue", referenced from:
-[APayReachability startNotifier] in AlipaySDK
-[APayReachability stopNotifier] in AlipaySDK
"_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from:
-[AliSecXReachability stopNotifier] in AlipaySDK
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__init(char const, unsigned long)", referenced from:
CAliSecXURL::encodeURIComponent(CAliSecXBuffer&) in AlipaySDK
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::reserve(unsigned long)", referenced from:
CAliSecXURL::encodeURIComponent(CAliSecXBuffer&) in AlipaySDK
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()", referenced from:
CAliSecXURL::encodeURIComponent(CAliSecXBuffer&) in AlipaySDK
"std::nothrow", referenced from:
CAliSecXBuffer::CAliSecXBuffer(unsigned long) in AlipaySDK
CAliSecXBuffer::_copy(unsigned char const
, unsigned long) in AlipaySDK
CAliSecXBuffer::resize(unsigned long) in AlipaySDK
"std::terminate()", referenced from:
___clang_call_terminate in AlipaySDK
"operator delete", referenced from:
CAliSecXBuffer::~CAliSecXBuffer() in AlipaySDK
CAliSecXBuffer::release() in AlipaySDK
CAliSecXBuffer::~CAliSecXBuffer() in AlipaySDK
CAliSecXBuffer::operator=(CAliSecXBuffer const&) in AlipaySDK
CAliSecXBuffer::resize(unsigned long) in AlipaySDK
alisec_crypto_Hex2Bin(CAliSecXBuffer const&) in AlipaySDK
alisec_crypto_Bin2Hex(CAliSecXBuffer const&) in AlipaySDK
...
"operator new[](unsigned long, std::nothrow_t const&)", referenced from:
CAliSecXBuffer::CAliSecXBuffer(unsigned long) in AlipaySDK
CAliSecXBuffer::_copy(unsigned char const*, unsigned long) in AlipaySDK
CAliSecXBuffer::resize(unsigned long) in AlipaySDK
"___cxa_begin_catch", referenced from:
___clang_call_terminate in AlipaySDK
"___gxx_personality_v0", referenced from:
+[ASSStorageAccesser saveStorageModel:] in AlipaySDK
+[ASSStorageAccesser loadStorageModelFromKeychain] in AlipaySDK
+[ASSStorageAccesser loadPreviousApdid] in AlipaySDK
+[ASSStorageAccesser getRandomizedID] in AlipaySDK
+[ASSStorageAccesser getNewRadomizedID] in AlipaySDK
+[ASSStorageAccesser loadLastLoginTime] in AlipaySDK
+[ASSStorageAccesser saveCurrentLoginTime:] in AlipaySDK
...
"_deflate", referenced from:
+[ASSCommonUtils gzipData:] in AlipaySDK
+[DTGZipUtil compressGZip:] in AlipaySDK
"_deflateEnd", referenced from:
+[ASSCommonUtils gzipData:] in AlipaySDK
+[DTGZipUtil compressGZip:] in AlipaySDK
"deflateInit2", referenced from:
+[ASSCommonUtils gzipData:] in AlipaySDK
+[DTGZipUtil compressGZip:] in AlipaySDK
"_kCNNetworkInfoKeyBSSID", referenced from:
+[UIDevice(APEX) networkDic] in AlipaySDK
"_kCNNetworkInfoKeySSID", referenced from:
+[UIDevice(APEX) networkDic] in AlipaySDK
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

解決辦法:
這種問(wèn)題通過(guò)在General->Link Framework and Libraiies中添加以下framework解決:

- libz.tbd
- libc++.tbd
- Security.framework
- CoreMotion.Framework
- CFNetwork.framework
- CoreTelephony.framework
- SystemConfiguration.framework

截圖如下捻爷,由于公司同時(shí)接入支付寶和微信支付,所以導(dǎo)入的庫(kù)就多了點(diǎn)咯:

9CCA6D99-B122-4C6E-8A1D-522BC3292A4E.png

問(wèn)題5.Redefinition of 'RSA' as different kind of symbol 多為sdk集成時(shí)產(chǎn)生的坑份企,因?yàn)槲覀児驹诩芍Ц秾氈耙查杏眠^(guò)RSA加密,導(dǎo)致重名問(wèn)題

解決辦法:
(1)司志,這個(gè)問(wèn)題不是每個(gè)公司都可能遇到的甜紫,但遇到也心煩
(2),由于支付寶中的openssl中的rsa.h文件與RSA加密有重名沖突骂远。改掉公司自己之前導(dǎo)入RSA的命名囚霸,如果你牛逼也可以去改rsa.h中的

問(wèn)題6;系統(tǒng)庫(kù)導(dǎo)入問(wèn)題
+++++++++++++
symbol(s) not found for architecture arm64


17321E6C-1A33-41D4-9B6E-9E499CCA23C6.png

解決辦法
就是導(dǎo)入系統(tǒng)庫(kù)了


85880AC4-E323-4451-B622-9E7ABB1CE658.png

問(wèn)題7:終于到微信了激才,接入微信拓型,你就開(kāi)心了
因?yàn)閱?wèn)題太少了额嘿,只能感謝下這兩個(gè)帖子的樓主了
解決辦法:
使用微信支付SDK1.5版本的支付demo
微信支付如果遇到跳轉(zhuǎn)只有一個(gè)確定請(qǐng)看這里

為了一些懶人懶的去看帖子,簡(jiǎn)單說(shuō)吨述,就是微信支付注冊(cè)放在友盟分享之后就ok了岩睁!
代碼示例:

// 友盟分享
    [self configUmengShare];
//向微信注冊(cè)
    [WXApi registerApp:@"wxb4ba3c02aa476ea1" withDescription:@"demo 2.0"];


問(wèn)題8:
拉起微信支付后,在微信支付注冊(cè)在友盟之后仍然跳轉(zhuǎn)到微信還是一個(gè)確定按鈕揣云,點(diǎn)擊確定按鈕回到自己的應(yīng)用
解決辦法:
這個(gè)是后端返回的參數(shù)有問(wèn)題捕儒,一般是sign簽名有問(wèn)題,
************注意:
1.簽名 后端簽名是要用到下面6個(gè)參數(shù)進(jìn)行簽名邓夕,appId刘莹,partnerId,noncestr焚刚,timestamp点弯,package prepaid,簽名過(guò)程中矿咕,6個(gè)參數(shù)都是小寫(xiě)抢肛,簽名后字符轉(zhuǎn)為大寫(xiě),sign字符全是大寫(xiě)
2.隨機(jī)串 請(qǐng)求預(yù)交易訂單返回的
3.時(shí)間戳 訂單結(jié)束時(shí)間

舉例:如下是請(qǐng)求后端返回的數(shù)據(jù)

  ["appid"]=>
  string(18) "wx5e71abd366954a75"
  ["noncestr"]=>
  string(16) "Ws5NaX2MqdGejNvW"
  ["package"]=>
  string(10) "Sign=WXPay"
  ["partnerid"]=>
  string(10) "1341184101"
  ["prepayid"]=>
  string(36) "wx20160530173622a5292225780182728337"
  ["sign"]=>
  string(32) "322B952AC0678F21DD1F7C5B1F444886"
  ["timestamp"]=>
  int(1464601340)
}

把后端返回的sign和自己簽名的sign做個(gè)比較碳柱,native已經(jīng)認(rèn)證過(guò)捡絮,沒(méi)有錯(cuò)誤

-(NSString *)createMD5SingForPayWithAppID:(NSString *)appid_key partnerid:(NSString *)partnerid_key prepayid:(NSString *)prepayid_key package:(NSString *)package_key noncestr:(NSString *)noncestr_key timestamp:(UInt32)timestamp_key{
    NSMutableDictionary *signParams = [NSMutableDictionary dictionary];
    //簽名的6個(gè)鍵值對(duì)中的key都必須小寫(xiě)
    [signParams setObject:appid_key forKey:@"appid"];//微信appid 例如wxfb132134e5342
    [signParams setObject:noncestr_key forKey:@"noncestr"];//隨機(jī)字符串
    [signParams setObject:package_key forKey:@"package"];//擴(kuò)展字段  參數(shù)為 Sign=WXPay
    [signParams setObject:partnerid_key forKey:@"partnerid"];//商戶(hù)賬號(hào)
    [signParams setObject:prepayid_key forKey:@"prepayid"];//此處為統(tǒng)一下單接口返回的預(yù)支付訂單號(hào)
    [signParams setObject:[NSString stringWithFormat:@"%u",timestamp_key] forKey:@"timestamp"];//時(shí)間戳
   
    
    NSMutableString *contentString  =[NSMutableString string];
    NSArray *keys = [signParams allKeys];
    //按字母順序排序
    NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
        return [obj1 compare:obj2 options:NSNumericSearch];
    }];
    //拼接字符串
    for (NSString *categoryId in sortedArray) {
        if (   ![[signParams objectForKey:categoryId] isEqualToString:@""]
            && ![[signParams objectForKey:categoryId] isEqualToString:@"sign"]
            && ![[signParams objectForKey:categoryId] isEqualToString:@"key"]
            )
        {
            [contentString appendFormat:@"%@=%@&", categoryId, [signParams objectForKey:categoryId]];
        }
    }
    //添加商戶(hù)密鑰key字段  API 密鑰   這里的key需要換成自己公司商戶(hù)密鑰
    [contentString appendFormat:@"key=%@", @"9db35c68b8de2d15d1d493d16fb67875"];
    
    NSString *result = [self md5StringWithString:contentString];//md5加密
    return result;
}

/**
 *  MD5 加密
 *
 *  @return 加密后字符串
 */
- (NSString *)md5StringWithString:(NSString *)str
{
    if(str == nil || [str length] == 0) return nil;
    unsigned char digest[CC_MD5_DIGEST_LENGTH], i;
    CC_MD5([str UTF8String], (int)[str lengthOfBytesUsingEncoding:NSUTF8StringEncoding], digest);
    NSMutableString *ms = [NSMutableString string];
    for(i=0;i<CC_MD5_DIGEST_LENGTH;i++)
    {
        [ms appendFormat: @"%02x", (int)(digest[i])];
    }
    
    [ms uppercaseString];
    //轉(zhuǎn)為大寫(xiě)
    NSString *big = [ms uppercaseString];
    NSLog(@"sign %@",big);
    return [big copy];
}

這里NSLog后的值為
2016-05-30 17:41:01.166 FPHClient[15313:6309040] sign 322B952AC0678F21DD1F7C5B1F444886
和后端返回的一樣

4.partnerId

問(wèn)題9:
拉起支付寶報(bào)錯(cuò):
交易訂單處理失敗,請(qǐng)稍后再試(ALI64)

解決辦法:
重新生成私鑰和公鑰,執(zhí)行步驟如下個(gè)問(wèn)題

問(wèn)題8:
支付寶要重新生成私鑰和公鑰莲镣,并上傳修改公鑰 -- 為你補(bǔ)充

解決辦法:
RSA密鑰生成命令步驟如下:

(1)先在終端鍵入 openssl
生成RSA私鑰
(2)openssl>genrsa -out rsa_private_key.pem 1024
生成RSA公鑰
(3)openssl>rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
將RSA私鑰轉(zhuǎn)換成PKCS8格式
(4)openssl>pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
注意:“>”符號(hào)后面的才是需要輸入的命令福稳。
使用

WuTiandeiMac:FPHClientNew wutianshi$ openssl
OpenSSL> 
OpenSSL> 
OpenSSL> 
OpenSSL> 
OpenSSL> genrsa -out rsa_private_key.pem 1024
Generating RSA private key, 1024 bit long modulus
....................++++++
.........++++++
e is 65537 (0x10001)
OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
writing RSA key
OpenSSL> 
OpenSSL> 
OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBANOjnFDIjeQjyah1
1smthHNsiHyXE8EOWMyMZkLrIlbu6TCDVHk/hhJTpbDxVOz6f4cFdynP/wD9Tbnf
ZfJCKFDFJ9jPz3Euyb5/jLFbyAVblyLLPiv5bxRLaA9/w4Jtt+G7E/ti8HN6224x
4TT3owFuKqZTcAXeqXp7QMzZyEkZAgMBAAECgYBWYKRf5DrlLiYT92Rek89HPLjI
APEzDiP3+CWUkltFl+Tcw/0qL18NA87QVO8QeXyrIvPrwNSXFssuXZtCMPY6oqgh
21ixQ+w4Kk4Z8nkEbFNRjryrpOeGMQmZlkSqRiehnYPY6UT8ovKXj0D1HBoscfA7
z1Ioxpo3QEN3jsxkcQJBAPbgYhJYS7+/HB92eXaHckTpU0/ycosSj6ha02xs5+Sv
xJbkkDfrt/LVVgApBYlgJQG0WRcD/8+4cIyyAxGFp7MCQQDbdduyrvUTffsXeuad
XcHIAmX928y19YGvCU3+TJtGIfUMPoRsnidMnZh2s29G6bGy0fkrmMadogEkKqQX
AmYDAkBEmbdGx7hM0Oscpww7bonHMlrPNVy03nSC4LItR9nsRxdGor6ce2jDFpru
MnfyY4AFCDtVVOwpqWPFBNYrcUtXAkEAltAme2OKHawMmnUl9+zPV1B2oH6k7kJZ
rVy6kVA5wHdje9eWj0IcBaWjeacTiGreZ+Gt1sz1aKxFFoKLIxjN2wJADlpg/9iN
Bf+JylK9QEgOTw6PngSOiXeaVXdErOPbu4WkzvxhB0bm8HPEPiJpLg/3sNaaX3ou
TIEHO8o1EcEnrw==
-----END PRIVATE KEY-----
OpenSSL> 

生成的文件:
這里寫(xiě)圖片描述

屏幕快照 2016-05-11 10.38.17.png

把公鑰上傳到支付寶,然后把pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt 這條命令產(chǎn)生的私鑰用在下面設(shè)置中就好
然后設(shè)置

/*
     *商戶(hù)的唯一的parnter和seller瑞侮。
     *簽約后的圆,支付寶會(huì)為每個(gè)商戶(hù)分配一個(gè)唯一的 parnter 和 seller。
     */
    
    /*============================================================================*/
    /*=======================需要填寫(xiě)商戶(hù)app申請(qǐng)的===================================*/
    /*============================================================================*/
    NSString *partner = PartnerID;//合作伙伴身份(PID):
    NSString *seller = SellerID;//商戶(hù)支付寶賬戶(hù)
    //獲取私鑰并將商戶(hù)信息簽名,外部商戶(hù)可以根據(jù)情況存放私鑰和簽名,只需要遵循RSA簽名規(guī)范,并將簽名字符串base64編碼和UrlEncode
    NSString *privateKey = PartnerPrivKey;// 剛第三端命令生成的去頭去尾

如有問(wèn)題半火,繼續(xù)分享咯越妈,總結(jié)才能讓問(wèn)題越來(lái)越少!

PS:來(lái)簡(jiǎn)書(shū)混钮糖,關(guān)注是必須的叮称,點(diǎn)贊?? 是要給的!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末藐鹤,一起剝皮案震驚了整個(gè)濱河市瓤檐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌娱节,老刑警劉巖挠蛉,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異肄满,居然都是意外死亡谴古,警方通過(guò)查閱死者的電腦和手機(jī)质涛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)掰担,“玉大人汇陆,你說(shuō)我怎么就攤上這事〈ィ” “怎么了毡代?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)勺疼。 經(jīng)常有香客問(wèn)我教寂,道長(zhǎng),這世上最難降的妖魔是什么执庐? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任酪耕,我火速辦了婚禮,結(jié)果婚禮上轨淌,老公的妹妹穿的比我還像新娘迂烁。我一直安慰自己,他們只是感情好递鹉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布盟步。 她就那樣靜靜地躺著,像睡著了一般梳虽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上灾茁,一...
    開(kāi)封第一講書(shū)人閱讀 51,182評(píng)論 1 299
  • 那天窜觉,我揣著相機(jī)與錄音,去河邊找鬼北专。 笑死禀挫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拓颓。 我是一名探鬼主播语婴,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼驶睦!你這毒婦竟也來(lái)了砰左?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤场航,失蹤者是張志新(化名)和其女友劉穎缠导,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體溉痢,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡僻造,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年憋他,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片髓削。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡竹挡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出立膛,到底是詐尸還是另有隱情揪罕,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布旧巾,位于F島的核電站耸序,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鲁猩。R本人自食惡果不足惜坎怪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望廓握。 院中可真熱鬧搅窿,春花似錦、人聲如沸隙券。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)娱仔。三九已至沐飘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間牲迫,已是汗流浹背耐朴。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留盹憎,地道東北人筛峭。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像陪每,于是被迫代替她去往敵國(guó)和親影晓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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