zoukankan      html  css  js  c++  java
  • 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 的路径。或者把 相应的文件目录放到相应的文件夹下面。

  • 相关阅读:
    Python
    12C配置EM Express的https端口
    在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
    Java – How to add days to current date
    Java – Display all ZoneId and its UTC offset
    Java 8 – Period and Duration examples
    Java 8 – Convert Instant to ZonedDateTime
    Java 8 – Convert Instant to LocalDateTime
    Java 8 – How to format LocalDateTime
    how-to-convert-string-to-localdate
  • 原文地址:https://www.cnblogs.com/itlover2013/p/4284342.html
Copyright © 2011-2022 走看看