phonegap支付宝2.0移动快捷支付插件IOS版

坑爹的支付宝,一两年都没有更新sdk了,这两天突然更新sdk,而且更新的变化特别大,所以只能对之前的支付宝快捷支付插件重新写了一遍。

这样既顺应了支付宝的更新,同时也支持了ios8。

废话少说,集成过之前版本的,先把之前的所以代码删掉包括文件。然后全新的集成新版本插件。【所有拖放是在xcode下面进行】

 

需要完成Phonegap 的支付宝快捷支付 需要先配置好支付宝相应的信息具体看

phonegap -Android客户端集成支付宝快捷支付(一)

1.插件包里面有很多文件,解压后能大概看一下,同时最好下载支付宝的快捷支付的接口文档,看看在结合我的文档集成,效果会好一些。

 

2.将 AlipaySDK.bundle , AlipaySDK.framework ,libcrypto.a,libssl.a 拖进xcode的根目录下面,然后在把AlipaySDK.framework ,libcrypto.a,libssl.a 拖到framworks目录下面。

 

3.将src目录下面的openssl  ,Util ,Order.h ,Order.m 拖放到你的class目录下面,但是必须保证文件是放到 项目文件夹里面。

4.文件夹Plugins里面是插件文件,拖放到Plugins目录下面,这里是插件文件,修改Pgalipay.m里面的商家信息。具体打开查看。

5.修改AppDelegate.m,根据插件文件的说明。这里是做回调处理的,可以看说明文件。

6.在config.xml里面引用插件。[2.x 和3.x 略有不同具体参考本地文件例子]

<featurename="Pgalipay">
        <paramname="ios-package"value="Pgalipay"/>
</feature>

7.引入js文件具体查看插件包里js文件的样例!

在js里面需要注意的是:
resultString 方法 是用来接收支付回调数据信息的。这个方法是在你的手机上有支付宝钱包app的情况下用到。
还有在插件调用的返回方法中也需要做回调数据处理,这个方法是在你的手机上没有支付宝钱包app的情况下用的,支付宝会启动一个简约的支付宝界面。

需要对这2个地方都做回调处理。

添加完文件之后,我们需要做一些配置:

1.添加自定义URL Scheme  如何添加请百度。或插件官方手册!

添加的时候只需要 填写URL Scheme,其他不用动。填写的就是你项目的name。

URL Scheme 在回调结果使用,建议起名稍复杂一些,尽量避免同其他程序冲突。

这个名字设置好之后,打开 Pgalipay.m,修改里面

NSString *appScheme = @”pgtest”; //这个pgtest 是你应用的名称也就是再URL Scheme

2. 点击项目名称,点击“Build Settings”选项卡,在搜索框中,以关键字“search”
搜索,对“Header Search Paths”增加头文件路径: $(SRCROOT)/项目名称。

如果头文件信息已增加,可不必再增加。

3. 点击项目名称,点击“Build Phases” 选项卡, 在“Link Binary with Librarles”选项中,

新增“SystemConfiguration.framework”系统库文件。如果商户项目中已有这两个库文件,可不必再增加。

4.细节优化。再Pgalipay.m里面需要修改几个地方

 NSString *appScheme = @”pgtest”; //这个pgtest 是你应用的名称也就是再URL Scheme设置的,需要修改。

order.notifyURL =  url; //回调URL; //回调URL 自己自定义, 最好是通过支付宝的回调地址对订单的支付结果做双重验证,以免导致外界伪造支付结果,导致财物损失,可以写死到代码里面,或者通过js传递进去。

//服务器异步通知页面路径 参数 notify_url,如果商户没设定,则不会进行该操作

完成以上的文件添加和项目调整,基本上就完成了支付宝的集成。

当然在html页面中,js的处理还是需要自己根据业务逻辑去处理的,特别是支付返回的值需要自己通过js方法去处理。

注意:

配置好ios项目后,编译时提示 openssl中 rsa.h 中 #include <openssl/asn1.h> not found,

这个需要调整search header 的路径。或者把 相应的文件目录放到相应的文件夹下面。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。