不会做,看看也可以会,要做好就还是需要多学习
国庆回来就一直没状态,看完《银河护卫队》,印象最深的竟然是只有两句台词的呆萌groot,昨天才休息一天,大耍大吃,今天还是把昨天的知识学习一下。前些天同事做一网站,需要用到支付宝接口,由于同事才学习PHP,我比他多学习了两天,我就帮忙参考了一下。
demo就是教程
支付宝官方网站(https://b.alipay.com/order/techService.htm)下载了开发包,直接拷贝了PHP版本作为我们需要的版本,里面直接就是一个demo。要怎么做呢?没吃过蛇肉还没见过蛇跑啊,要是没见过就去见识见识,毕竟关系到“人民币”。按照用户的习惯还是熟悉一下流程:加购物车(项目直接忽略,定向人群)- 下订单 - 确认订单 - 支付订单。
思路整理分析:(仅仅来源于一个顾客的思路,不正确请留言指教一下,谢谢!)
下订单:订单数据交互至数据库,跳转至确认订单页面
确认订单:订单数据显示给顾客确认一下
支付订单:跳转至支付流程页面
订单状态:订单状态修改一下
问题整理分析:(问题来源于新手刚刚看完DEMO)
数据是通过表单提交信息至确认订单页面,直接获取数据库数据?还是显示表单提交的信息?
确认订单后跳转至支付页面,直接获取数据库数据?还是显示表单提交的信息?
支付流程现实是这样的
如图一,下订单页面,页面如图,信息来源于第一界面,数据仅仅是针对顾客的第一预览。
页面中的信息无需如此,简单修改了一下,提交订单后跳转至alipayapi.php,页面内接受信息再让用户确认一下,或者直接取消显示的确认按钮,数据通过订单号,查询出商品单价等信息进行提交。(提到这里仅仅是因为当时开发中的一个小插曲,异步的不能修改状态,于是我帮忙测试的时候,我价格修改为了0.01元,支付成功,同步状态修改,如果是发货的话,不得气死,还好只是类似于支付定金,还好有人审核,但是这终究是一个问题)。问题来源于alipayapi没有进行数据验证,关系到钱的程序还是要谨慎一点好。
走一下接口开发流程
很简单的修改一下配置文件alipay.config.php,再然后简单的配置一下alipayapi.php,主要说明一下这两项:
//服务器异步通知页面路径
$notify_url = "http://商户网关地址/create_direct_pay_by_user-PHP-UTF-8/notify_url.php";
//需http://格式的完整路径,不能加?id=123这类自定义参数
//页面跳转同步通知页面路径
$return_url = "http://商户网关地址/create_direct_pay_by_user-PHP-UTF-8/return_url.php";
//需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/
这里我们默认通知页面为:http://www.pushself.com/
$notify_url = "http://www.pushself.com/notify.php";
$notify_url = "http://www.pushself.com/return.php";
notify.php页面就是支付订单页面,登录支付宝支付(扫一扫支付)后,支付宝自动抓取的页面。
return.php页面就是支付订单页面,登录支付宝支付(扫一扫支付)后,页面跳转至的回调页面。
主要是针对扫一扫支付,以上两个页面为成功后做修改状态操作,return.php是支付过程中不能关闭浏览器,关闭了就不能修改状态,相反此时notify.php就会起作用了,关闭浏览器后,支付宝自动抓取这个页面,如果抓取到success,此次交易就完成了。
乱是乱了点儿
做事需要的是坚持,有些事情不做就永远也不会。