关于星点无线1.8.1

星点无线已经升级到1.8.1版本了,其功能也转变成以O2O为主,消费者使用星点无线客户端直接购买商品或服务,获得二维码凭证,到商家门店出示二维码,通过我们给商家提供的二维码扫描设备验证,即可获取商品或享受服务。

星点无线现在同时发布iPhone和Android版本,1.8.1的UI有了很大的改变,由原来的蓝色系改为了橙色系,功能上增加了游客浏览、离线电子票,集章卡的展现也有了很大的改进。

iPhone版App Store地址 http://itunes.apple.com/cn/app/id448294946?mt=8
Android版安装文件 http://www.xingdian.com/downloads/starrymobile.apk

 

 

 

 

支付宝无线商户接入遇到的问题总结

最近我在为“星点无线”产品增加手机支付功能,支付当然首先想到的是支付宝,而且也在其他类似无线产品里看到集成支付宝应用。

首先在支付宝无线商户平台里签约,我们分别签了“手机网页支付”和“手机应用内支付”,所在行业的费率会有所不同,请根据实际情况选择,“手机网页支付”和“手机应用内支付”的费率也不同,“手机应用内支付”低一些。

最开始,我只想简单一点,在iOS应用里内嵌Web,采用手机网页支付,服务器端是用PHP,手机网页支付,采用MD5和RSA两种签名方式,MD5相对简单,但安全性不如RSA,我最开始测试MD5,而且之前在网站上集成支付宝,也没啥问题,开始是比较顺利的,到支付宝支付时,支付宝默认选择了短信支付方式(可能和我们签约的分类有关),也就是支付宝会通过手机短信发送一个验证码,然后回复验证码,支付宝再会发送一个短信,短信里包含一个URL,点击这个URL,会提示支付完成,然后转到我们网站的回调地址,我方程序完整成个订单,但支付宝提供的这个URL,有时候打开会报错误,而且也不是每次都错,非常的奇怪,更大的问题是在成功后回调我服务器程序时报签名不对,我仔细检查了配置,没有问题,只能一点点排错,最后发现支付宝提供的Demo包里alipay_function.php的para_filter方法有问题,这个方法会漏掉回传的out_trade_no参数,非常的奇怪,只有修改这个方法为

function para_filter($parameter) {
  $para = array();
  foreach ($parameter as $key=>$val) {
    if($key == "sign" || $key == "sign_type" || $val == "") {
      continue;
    } else {
      $para[$key] = $parameter[$key];
    }
  }
  return $para;
}

签名问题解决,但由于短信支付最后这个URL的诡异表现,我为此专门询问支付宝客户支持,得到的回答是他们也发现这个问题,但不知道是什么原因造成的,技术也解决不了,竟然也有支付宝解决不了的问题啊!

这个问题不能解决,确实对用户的体验不太好,我只能选择“手机应用内支付”,支付宝提供了iOS的集成代码,文档也算详尽,但iOS的签名采用RSA,所以在服务器端先要改为RSA的(RSA的alipay_function.php para_filter方法有同样的问题),生成公钥、私钥的方法在文档里比较清楚,就是注意上传商户公钥时一定要删除文件头“—–BEGIN PUBLIC KEY—–”与文件尾“—–END PUBLIC KEY—–”还有空格、换行,变成一行字符串并保存为TXT文件,商户私钥在PHP程序不需要转为PKCS8格式,而在其他语言里(比如Objective-C)需要转为PKCS8格式,并在iOS应用里设置plist文件中RSA private key变量时,要把PKCS8格式私钥的换行和头尾的“—–BEGIN PRIVATE KEY—–”与“—–END PRIVATE KEY—–”删除。

在iPhone真机调试过程中,跳到支付宝应用时报签名错误,我又仔细检查了好几遍,确定没什么问题,后来在支付宝的指导下先测试运行他们提供的Demo程序,没有问题,说明签名密钥没问题,肯定是要签名的数据有问题,我对比了一下发现AlixPayOrder中的productDescription不能为空,也就是传输数据中的body变量不能为空,终于完成了无线支付的集成。

支付宝提供的文档还算比较全面,但有些地方还是有些含糊,如果是iOS集成的话,先测试它提供的Demo程序,以确定密钥的正确性,仔细调试,记录Log,还是比较容易集成的。

星点无线1.5

今天,星点无线1.5已经通过App Store的审核,上架了,地址在http://itunes.apple.com/cn/app/id448294946?mt=8,也可以在App Store里搜索“星点无线”或是“StarryMobile”找到这个应用。

星点无线1.5的主要改变有
全新UI设计
支持iOS5
更加舒适的用户体验
提高运行速度与稳定性
支持调查任务筛选与优惠券排序
增加信息推送功能
修复优惠券显示文字高度的BUG

星点无线1.0和1.1的原始程序是我们找外包团队开发的,1.0和1.1发布时,我已经修改了其中很多的代码,在我们设计1.5的功能时,我觉得,不能在1.0/1.1的基础上改了,老版本存在许多的问题,特别是在性能及内存使用方面有很多不足,代码整体质量不高,我准备重写1.5版本,来个干净彻底,我是10.1假期之后开始重写,在美工设计的配合下,到10月底完成了这个版本,期间iOS5正好发布,这个工程也转到iOS5下开发。

 

 

星点无线

星点无线-StarryMobile是一个免费的iPhone应用程序,通过完成基于地理位置的调查任务,可以获得积分或相关优惠券,用户可以方便的管理与使用获得优惠券,或将积分兑换为奖品。

这个产品是我们公司开发的,我编写了其中很大一部分代码,也是我对iOS开发的第一次实践,在后面将不断增加新的功能,并与我们的星点网(www.xingdian.com)有更好的整合。

欢迎大家到App Store里下载使用,http://itunes.apple.com/us/app/id448294946?mt=8

 星点无线 星点无线

星点无线 星点无线 星点无线

终于用上iPhone了

作为IT人,iPhone似乎成了标志,看着朋友同事都用上了iPhone,终于,最近想换手机,我也买了一个iPhone,二代,16G,黑色,美版(因为港版要贵一些),软件是3.0。

iPhone最大的优势在于,它做成了一个平台,大家可以在上面开发小应用,通过Apple iTunes Store发售,开发者、Apple都可以得益,同时可以满足用户在多方面的需求,这是一个非常好的模式。以前的文章里也说过,平台化是互联网的趋势,通过平台可以发掘出无穷的力量,让更多的人参与进来,毕竟一个商业主体所能做的事情是有限的。

在iPhone上装了Facebook、Twitterrific、万年历、金山词霸等等,甚至在安装了WordPress的插件后,可以通过iPhone来写自己的Blog了。

为了保证家里的Wi-Fi稳定,我特意找出了以前一个不用的无线路由器,放在在自己的房间里,我想在不远的将来,3G普及的时候,那就真的是无线互联的的时代了。

唯一不满的是在使用Wi-Fi上网的时候,iPhone的电用的太快了。