iOS中京東支付

有的童鞋沒弄過京東支付跑來問我,我們項(xiàng)目里有用到京東支付疮蹦,于是自己寫了個(gè)demo诸迟,代碼貼在下面,希望能幫助到不會(huì)的童鞋愕乎。
1.新建一個(gè)繼承Viewcontroller的JDViewcontroller

2. 在JDViewcontroller.h文件中阵苇,定義一個(gè)url屬性,用來傳url(廢話)
@property (nonatomic, copy) NSString *urlStr;

3.在JDViewcontroller.m文件中感论,導(dǎo)入<JavaScriptCore/JavaScriptCore.h>框架绅项,并定義一個(gè)成員變量webView

{
    UIWebView *_webView;
}
4.主要代碼
- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.title = @"京東支付";
    self.view.backgroundColor = [UIColor whiteColor];
    [self initSubView];
}
- (void)initSubView {
//創(chuàng)建webView
    _webView = [UIWebView new];
    _webView.scrollView.bounces = NO;
    _webView.delegate = self;
    [self.view addSubview:_webView];
    _webView.frame = self.view.frame;
    
    NSURL *url = [NSURL URLWithString:[_urlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [_webView loadRequest:request];
    
}
//delegate
- (void)webViewDidStartLoad:(UIWebView *)webView {

}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSLog(@"加載中,,");
    NSString *currentURL = webView.request.URL.absoluteString;
    NSString *theTitle = [webView stringByEvaluatingJavaScriptFromString:@"document.title"];
    NSLog(@"%@==", theTitle);
    
    NSRange range = [theTitle rangeOfString:@"支付的結(jié)果"];
    
    if (range.length > 0) {
        _webView = [UIWebView new];
        NSURL *url = [NSURL URLWithString:[currentURL stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        [_webView loadRequest:request];
        //固定格式,js與iOS交互
        JSContext *context = [_webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
        context[@"jakilllog"] = ^() {
            NSString *type;
            NSLog(@"begin +++++++++++++");
            NSArray *args = [JSContext currentArguments];
            
            for (JSValue *jsVal in args) {
                NSLog(@"%@", jsVal);
                type = [NSString stringWithFormat:@"%@",jsVal];
            }
            
            JSValue *this = [JSContext currentThis];
            NSLog(@"this : %@", this);
            NSLog(@" end --------------");
            
            if ([type isEqualToString:@"success"]) {
                NSLog(@"success");
            }
        };
    }
}

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    return YES;
}

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {

}

在主Viewcontroller中導(dǎo)入JDViewController.h

- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    //新建一個(gè)button比肄,用來做點(diǎn)擊事件
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
    btn.frame = CGRectMake(80, 180, 180, 30);
    [btn setTitle:@"點(diǎn)擊進(jìn)行京東支付" forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(ttt:) forControlEvents:UIControlEventTouchUpInside];
    btn.backgroundColor = [UIColor redColor];
    [self.view addSubview:btn];
 }
//點(diǎn)擊事件
- (void)ttt:(UIButton *)btn {
    NSLog(@"點(diǎn)擊進(jìn)行京東支付");
    [self jdPay];
}

//支付

- (void)jdPay {
    NSString *userid = @"你的ID";
    NSString *money = @"0.15
![Simulator Screen Shot 2016年6月20日 14.32.54.png](http://upload-images.jianshu.io/upload_images/1903176-b2c81ed5e8412b3a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)";
//具體根據(jù)你們后臺(tái)的參數(shù)來設(shè)置
    NSDictionary *dic = [[NSDictionary alloc] initWithObjectsAndKeys:userid,@"linkTel",@"付款",@"body",money,@"actualAmount",userid,@"userId",@"1",@"deviceType", nil];

//創(chuàng)建對(duì)象
  JDViewController *jd  = [JDViewController new];

//拼接url
  NSString *url = [NSString stringWithFormat:@"{\"linkTel\":\"%@\",\"body\":\"支付名稱\",\"actualAmount\":\"%@\",\"deviceType\":\"1\",\"userId\":\"%@\"}", dic[@"linkTel"], dic[@"actualAmount"], dic[@"userId"]];

   jd.urlStr = [NSString stringWithFormat:@"%@%@", @"你們后臺(tái)接口地址message=",url];

   //跳轉(zhuǎn)
   [self.navigationController pushViewController:jd animated:YES];
}

結(jié)果圖如下

Simulator Screen Shot 2016年6月20日 14.32.54.png
59724001-2E9A-4D96-884B-462ED953BA32.png

好啦快耿,如果你喜歡的話,請(qǐng)點(diǎn)個(gè)贊芳绩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末掀亥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子示括,更是在濱河造成了極大的恐慌,老刑警劉巖痢畜,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件垛膝,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡丁稀,警方通過查閱死者的電腦和手機(jī)吼拥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來线衫,“玉大人凿可,你說我怎么就攤上這事。” “怎么了枯跑?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵惨驶,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我敛助,道長(zhǎng)粗卜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任纳击,我火速辦了婚禮续扔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘焕数。我一直安慰自己纱昧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布堡赔。 她就那樣靜靜地躺著识脆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪加匈。 梳的紋絲不亂的頭發(fā)上存璃,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音雕拼,去河邊找鬼纵东。 笑死,一個(gè)胖子當(dāng)著我的面吹牛啥寇,可吹牛的內(nèi)容都是我干的偎球。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼辑甜,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼衰絮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起磷醋,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤猫牡,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后邓线,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體淌友,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年骇陈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了震庭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡你雌,死狀恐怖器联,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤拨拓,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布肴颊,位于F島的核電站,受9級(jí)特大地震影響千元,放射性物質(zhì)發(fā)生泄漏苫昌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一幸海、第九天 我趴在偏房一處隱蔽的房頂上張望祟身。 院中可真熱鬧,春花似錦物独、人聲如沸袜硫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽婉陷。三九已至,卻和暖如春官研,著一層夾襖步出監(jiān)牢的瞬間秽澳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工戏羽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留担神,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓始花,卻偏偏與公主長(zhǎng)得像妄讯,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子酷宵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,862評(píng)論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫亥贸、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,066評(píng)論 4 62
  • (原文寫于2015-2-26浇垦,發(fā)在朋友圈炕置。當(dāng)時(shí)我剛做了4場(chǎng)分享會(huì),心中萌生了100場(chǎng)的目標(biāo)男韧,春節(jié)歸來朴摊,突發(fā)感慨,寫...
    貓書的思考泡泡閱讀 801評(píng)論 6 8
  • 上一章 第一章 流云散 (中) 對(duì)面是位年輕公子煌抒,大約25歲左右仍劈,容顏如玉厕倍,著一襲高貴的紫寡壮,臉色卻略顯蒼白,公子挑...
    腐草為瀅閱讀 386評(píng)論 0 4
  • 升級(jí)IOS10.3正式版以后可能會(huì)出現(xiàn)上傳文件的控件只能拍照而不能選擇現(xiàn)有圖片的問題。 正好被我們碰到了况既,于是找了...
    Flutter求學(xué)者閱讀 476評(píng)論 0 0