由于app内需要用到支付功能,选择了当前最流行的支付宝进行支付。在进行内嵌支付宝功能开发时,被它狠狠的耍了一把。

根据支付宝开发文档,参考demo代码。将相关支付功能加到了自己的代码中。一些根据文档来做,也没有太大的难度。但添加完代码,进行测试时,问题 却来了。在app中可以成功调用支付宝app,成功支付并返回。这个时候就出现问题了。在app delegate支付宝回调本app的执行函数中,公钥验证签名成功后,会对支付结果进行提示。根据demo,提示支付的代码如下:

  1. UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:result.statusMessage delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil];
  1. [alertView show];
  1. [alertView release];

问题就出现在这里了。支付成功后,result.statusMessage返回的值却是空的。而我测试取消支付,这个返回值却是正确的,提示“操作取
消”之类的文字(具体忘记了)。支付失败没有进行测试。这下麻烦了,不知问题出在哪里。总不能支付成功后,返回一个空的提示吧。或者直接将提示自己写死,
显示“支付成功”?那万一是其他信息提示咋办呢?

重复对比了demo和自己程序的代码,发现没有错漏的地方。百思不得其解,于是想是不是支付宝后台的问题?又根据支付宝服务器端的开发文档,仔细检查,反复测试了。还是找不到原因。

这下没撤了,只能打支持电话,加入一个交流群,问了支付宝负责技术的人,反复说明问题后,终于得到了答覆,支付成功时,result.statusMessage是没有返回值的,大概意思是后来取消了这个返回值。

我的妈阿,对返回值作了改变,为啥文档又没说明,让我等苦逼的程序猿白白折磨了一两天,情何以堪呢。客气的将我的想法提了给支付宝的技术支持,回复
说:不要太相信demo。shit,这是人话吗,我用你的接口,不是根据你的文档和demo,那我会担心出错的,而且这是涉及到金钱问题,所以更加不能马
虎。内心暗骂了一通之后,又将我的一番建议,例如要求再进一步完善文档,对细节再进一步谨慎之类的提交到支付宝技术支持那里。到此,我的痛苦的支付宝接口
调用过程就告一段落了。写这篇文章,算是提醒自己或者有需要的人,有不明白的地方,第一时间找支付宝的技术支持,不要自己瞎折腾了,说不定你碰到的问题不
是自己的问题,而是出在第三方接口上。

另外说一下,支付宝网站上找技术支持,直接点支持旺旺是没反应的,你需要打电话去问,才能拿到技术支持的旺旺号,这里公布一下支付宝技术支持群的旺旺号,应该不会被支付宝的人骂吧。呵呵

旺旺号:24768316 
密码:alipay2010

补充:

另外,很多人发私信来问,哪里可以下载支付宝demo或者sdk。这个问题自己曾经也痛苦过,在支付宝网站找个demo,不是一般的难,位置隐藏得非常深,特别是改版后,更加难找了。上一次(改版后)实在找不到,只好问支付宝的技术支持。

支付宝集成sdk和demo下载地址:

下载地址:http://download.alipay.com/public/api/base/WS_SECURE_PAY.zip

这个只是无线产品的集成sdk和demo,其他的产品没有用过,所以忽略。

转:iOS app支付宝接口调用的一点总结(补充支付宝SDK&Demo下载地址)的更多相关文章

  1. iOS app支付宝接口调用的一点总结(补充支付宝SDK&Demo下载地址)

    由于app内需要用到支付功能,选择了当前最流行的支付宝进行支付.在进行内嵌支付宝功能开发时,被它狠狠的耍了一把. 根据支付宝开发文档,参考demo代码.将相关支付功能加到了自己的代码中.一些根据文档来 ...

  2. 【转】IOS AutoLayout详解(三)用代码实现(附Demo下载)

    转载自:blog.csdn.net/hello_hwc IOS SDK详解 前言: 在开发的过程中,有时候创建View没办法通过Storyboard来进行,又需要AutoLayout,这时候用代码创建 ...

  3. 在django中实现支付宝支付(支付宝接口调用)

    支付宝支付 正式环境:用营业执照,申请商户号,appid 测试环境:沙箱环境:https://openhome.alipay.com/platform/appDaily.htm?tab=info 支付 ...

  4. Android 支付宝接口调用

    在近期,公司需要开发一个关于在线支付的模块,所以需要用到第三方支付平台 转载请注明出处:http://blog.csdn.net/ht_android/article/details/45307165 ...

  5. CodeIgniter 开发,支付宝接口调用实例

    准备:1.alipay官方下载最新接口类库2.解压后,将目录"\即时到账交易接口-create_direct_pay_by_user\demo\create_direct_pay_by_us ...

  6. 调用支付宝接口Android客户端没有支付宝APP的情况下解决无法调用支付宝页面的问题

    这几天一直研究支付宝接口调用,因为当前应用中需要调用支付宝接口作移动支付. 遇到一个问题困扰几天,就是当我们的手机端未安装支付宝APP的时候,需要在自己应用中调用支付宝的登陆网页进行支付.我是Andr ...

  7. IOS App如何调用python后端服务

    本篇文章旨在通过一个小的Demo形式来了解ios app是如何调用python后端服务的,以便我们在今后的工作中可以清晰的明白ios app与后端服务之间是如何实现交互的,今天的示例是拿登录功能做一个 ...

  8. iOS App引导页功能实现

    一.写作原因 以前都没有想着来写点东西,今天遇到件事情让我决定每次还是要做记录.因为以前自己可以轻松的完成pod spec的配置,但是今天在做的时候还是忘了遇到了很多坑.pod spec配置遇到的坑不 ...

  9. ThinkPHP实现支付宝接口功能

    最近做系统,需要实现在线支付功能,毫不犹豫,选择的是支付宝的接口支付功能.这里我用的是即时到帐的接口,具体实现的步骤如下:一.下载支付宝接口包下载地址:https://doc.open.alipay. ...

随机推荐

  1. ajax异步请求获取数据,实现滚动数字的效果。

    BackgroundPositionAnimate.js下载 需要导入的js: <script type="text/javascript" src="js/jqu ...

  2. JS实现缓存运动

                                                                                                      JS ...

  3. sql删除注意的问题

    老大骂你都是有原因的,基础要打好!!!! SQL关于删除的三个语句:DROP.TRUNCATE. DELETE 的区别. DROP test; 删除表test,并释放空间,将test表删除的一干二净 ...

  4. ajax的两种使用方式

    一.Ajax概述 1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都 ...

  5. UVALive 5545 Glass Beads

    Glass Beads Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on UVALive. Origin ...

  6. 《从零開始学Swift》学习笔记(Day 46)——下标重写

    原创文章.欢迎转载.转载请注明:关东升的博客 下标是一种特殊属性. 子类属性重写是重写属性的getter和setter訪问器,对下标的重写也是重写下标的getter和setter訪问器. 以下看一个演 ...

  7. 从头认识java-15.3 使用HashSet须要注意的地方

    这一章节我们来讨论一下使用Set的各种实现须要注意的地方. Set接口的经常使用实现类有:HashSet.TreeSet,LinkedHashSet 1.HashSet 大家对于HashSet的印象都 ...

  8. oracle rac 巡检过程详解

    一 RAC环境 RAC架构,2节点信息 节点1 SQL> show parameter instance NAME                                 TYPE    ...

  9. FriendlyARM交叉工具链以及编译第一个arm9应用

    不记录什么都会忘光!!!这两天又要用到开发板来做项目,可是好久没有碰了,最近一直在搞上层的东东,对rails和前端感兴趣,我这是不要毕业的节奏了吗?好吧,既然什么都忘光掉了,那就干脆来个痛快,重新装机 ...

  10. VM虚拟机上的CentOS 7系统重置root用户密码

    1.开机在进入CentOS系统时(还未进入系统内)的系统选择页面时按E键进入系统编辑模式 2.找到Linux16开头的这行代码,用方向键将光标移动至这行代码的结尾,键入一个空格和rd.break,然后 ...