Swift

来源:互联网 发布:诺瓦刷屏软件 编辑:程序博客网 时间:2024/05/17 06:13


 写这篇blog的时候我刚通个宵,现在是下午的12:58啦,表示很淡定,没什么波动,主要昨天浪费了我很多时间,所以写下来,想给其他人一些帮助,当时也搜了很多资料和找度娘,找阿里的客服,【然后阿里客服原话就是我们业务很忙的,没工夫理你】


废话不多说直接上步骤:


1:下载最新版sdk2.0,将以下文件拖入Swift项目里,建立桥接文件,引用项目头文件。


2:按照OC引用库添加,先不要Build。


3:记得在桥接文件中添加

#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>

#import "Order.h"

#import "APAuthV2Info.h"

#import "RSADataSigner.h"

#import <AlipaySDK/AlipaySDK.h>

#import <CommonCrypto/CommonCrypto.h>


4:这个时候Build会报错误,base64和其他一个文件,如果是Nsstring或者Nsdata报错直接怼

#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>

在那个文件中


5:还有一个路径问题,build success后,用order生成订单信息,发起支付,就会提示无法获取订单信息活着AL的错误编码,但是我把参数放到OCdemo中,可以正常支付,最后我的解决方法是写一个OC支付类,继承VC或者单例都可以,结果可以支付。

在appdelegate中设置所有,钱包,H5支付的回调:

 func application(_ app: UIApplication, open url:URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) ->Bool {

        if url.host!=="safepay" {

            AlipaySDK.defaultService().processAuthResult(url, standbyCallback: { (result) in

               

            })

//认证支付回调

            AlipaySDK.defaultService().processAuth_V2Result(url, standbyCallback: { (result) in

               

            })

//q钱包支付宝回调

        AlipaySDK.defaultService().processOrder(withPaymentResult: url) { (result) in

  

        }

    }

       returntrue

  }


设置回调内容,我一般写个通知。

6:有时候opnssl和Util上有文件找不到,这是路径上问题,在Build setting ->Header search path 上添加相对路径(不推荐)或者绝对路径【我推荐:找到这两个文件->show in finder->command +I ->复制路径,添加上去】


7:Build Success


ps:为什么swift发起支付不行,这个只有一点猜想,就是签名的加密不对,如果谁知道,请指教!