小发现
原文地址:http://www.blogkid.net/archives/477.html
今天早上一上来,就看到buyren论坛上我的信箱里多了几封充值成功的邮件——自然是昨天的那几个订单。在智勇神来之笔下,支付宝自助购买财富终于又修好了。但是在没修好之前的订单,支付宝今天早上也全部为它们自动发了货——也就是说,支付宝对那些应该处理但暂时联络不上通知地址的订单,会周期性的轮询,直到联络上为之。
昨天搞了好久,让我深深地郁闷之后,居然被智勇搞定了。Oh,还真是服务器出的问题,要是我们能早点意识到,也许下午就好了。Anyway ,这个做好至少能让我睡个好觉,因为以前从来没有做错东西查不出来的时候——更何况还是这么几行程序。在下午动手做之前,没有接触过支付宝这方面的API,现在做完了,也觉得流程很容易理解,可能程序的难点就是在QueryString的构造上,要按照字母顺序(参照以前我所接触的支付宝API),最后还要md5一下。
程序的流程很简单。在form里得到了要购买财富的数目,通过特定的API协议(可以生成直接付款和支付宝交易付款)构造一个QueryString,再通过refresh到支付宝那边。
如果是支付宝交易付款,中间要多一步。支付宝会发送一个消息到通知地址(sendOff),那边的处理程序接到这个指令,就会改变论坛上的订单状态。如果改变成功,会返回一个值(Y)——不成功返回的是N。这样在支付宝里就会看到订单状态改变了,卖家已发货。
然后我们点“确认收货”(如果是直接打款,后面的过程都一样),这时,钱会打到智勇的帐户。然后通知地址会收到支付宝发来的消息(checkOut)——这时程序和上面的处理一样,先改变论坛上的订单状态,给会员加钱,成功的话返回Y,支付宝那边订单的状态也会改变了。
流程是不是很简单。但是支付宝在做这两个步骤的时候和用户的操作是异步的。只要没处理完成的订单,支付宝一定会不停地向通知地址发消息——这导致了一个什么问题呢,如果前段时间为会员手工加上财富,现在通知地址修好,很有可能加第二次财富。
PS:现在我的订单全部发货了,但我不知道哪个是在test上买的,哪个是在buyren买的。要是这样确认收货,不是就亏了?相应的金额会增加到论坛上和我订单号有重复的会员帐户上。


虽然没看懂,但感觉是挺高深的东西.
你好,张磊。
看过你在开复网站上的志愿者申请资料,想和你认识一下。我是开复学生网的MJchina。
http://mjconan.bokee.com
MSN: conanpaul#hotmail.com
呵呵 : )
“小”发现!
神来之笔~