美文网首页
支付宝集成(第三方SDK)

支付宝集成(第三方SDK)

作者: 一个人的思考 | 来源:发表于2017-05-08 09:06 被阅读111次

支付宝集成

支付宝开放平台:https://openhome.alipay.com/platform/home.htm


  • 1.导入相关框架
Snip20150911_2.png
  • 可能会遇到的问题
    • 1.导入系统依赖框架
      SystemConfiguration.framework
    • 2.添加依赖路径
      $(SRCROOT)/支付宝集成/Classes/Alipay
Snip20150911_3.png
  • 主要集成code
- (void)buyProduct:(NYProduct *)product
{
    /**
     *  1.签约后获取商户ID/账号ID/私钥
     */
    NSString *partner = @"";
    NSString *seller = @"";
    NSString *privateKey = @"";
    /**
     2.创建订单
     */
    Order *order = [[Order alloc]init];
    order.partner = partner;
    order.seller = seller;
    order.tradeNO = @"";//商户自己决定
    order.productName = product.name;
    order.productDescription = product.detail;
    order.amount = [NSString stringWithFormat:@"%.2f",product.price];
    order.notifyURL = @"";//回调地址
    
    order.service = @"mobile.securitypay.pay";
    order.paymentType = @"1";
    order.inputCharset = @"utf-8";
    order.itBPay = @"30m";
    order.showUrl = @"m.alipay.com";
    /**
     *  应用注册scheme, 在info.plist定义
     */
    NSString *appScheme = @"zhifubaojicheng";
    
    NSString *orderSpec = [order description];
    /**
     获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode
     */
    id<DataSigner>singer = CreateRSADataSigner(privateKey);
    NSString *signedString = [singer signString:orderSpec];
    // 格式化订单,严格按照格式
    NSString *orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",
                             orderSpec, signedString, @"RSA"];
    // 开始支付(网页/打开支付宝客户端)
    [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
        // 只有是通过网页支付的时候才会回调该位置
        NSLog(@"reslut = %@",resultDic);

    }];
}
  • 注意 在appDelegate.m中注意回调
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    
    //跳转支付宝钱包进行支付,处理支付结果
    [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
        // 如果是通过客户端支付,是回调该位置
        NSLog(@"result = %@",resultDic);
    }];
    
    return YES;
}

以上参照支付宝demo
并附上自己的demo
https://github.com/nealwangzi/alipaydemo.git

相关文章

网友评论

      本文标题:支付宝集成(第三方SDK)

      本文链接:https://www.haomeiwen.com/subject/oaqmtxtx.html