iOS支付宝 界面定制



因为ipad应用需要添加支付宝功能
在支付宝论坛http://club.alipay.com/read-htm-tid-9976972.html (2012.11.23更新
上找到了最新的 无线支付sdk
http://download.alipay.com/public/api/base/WS_SECURE_PAY_SDK.zip


这个界面是检测到没有吧安装支付宝客服端 让我们去选择是否去安装
但是坑爹的 选择取消是跳入web支付界面里去,用户体验是如此的差呀

 而iOS支付宝sdk是非源码包 ,无法直接对其功能进行更改
于是想到通过类别去更改他的调用方式

通过调试得到其包含了如下几个类
AlixPaylib
AlixLoadingContral
AlixLoadingView
ALPToastView
AliXImage
Alipay_Reachability
AlixLightRequest
AlixLightRequestQueue
AlixDevice
AlixButtonInfo

再通过runtime

    NSString *className = NSStringFromClass([AlixPaylib class]);

    const char *cClassName = [classNameUTF8String];

    id theClass = objc_getClass(cClassName);

    unsigned int outCount;

    Method *m =  class_copyMethodList(theClass,&outCount);

    NSLog(@"函数个数:%d",outCount);

    for (int i = 0; i<outCount; i++) {

        SEL a = method_getName(*(m+i));

        NSString *sn =NSStringFromSelector(a);

        NSLog(@"%@",sn);

    }


得到了 AlixPaylib  里的49个函数函数
其中 openWebView 数为打开web支付界面的功能
downloadApp 是检测iOS设备商没有支付宝客服端时弹出


创建一个 AlixPaylib  的类别
- ( void ) downloadApp {     [ self openWebView ];
}
将本段代码添加入类别里,当没有客服端时,就直接进入web支付界面进行支付


但是后面又发现支付宝sdk不支持横屏,又是一巨坑呀,去官方询问,给回答了一句产品正在改进中,我想你有sdk源码还改得那么慢 

所以就又想了一个办法,既然能获取到请求手机支付的网址
[[ AlixPaylib shareLib ] openUrl ]
我就另外建一个UIViewController来显示支付界面,去把他做成支持横屏的





最坑爹的是在web端的输入的账号信息,支付包是保存在本地的,再次进入web支付界面,根本就不需要输入账号密码等信息,还有就是wap回调签名就没验证成功过


程序下载地址:点击打开链接




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值