1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 购物网站集成支付宝

购物网站集成支付宝

时间:2021-12-22 07:09:15

相关推荐

购物网站集成支付宝

一、Introduction

支付宝在支付中是被应用的。网站中需要支付的地方可以集成支付宝。

二、集成支付宝的步骤

1.选择合适的支付接口并申请生成帐号

打开alipay主页,选择我是商家用户。点产品大全,选择电脑网站支付。申请,申请成功后,会得到一个合作者ID,一个key。

2.下载开发包和开发手册

在支付宝网站的开放平台的文档中心中,选择电脑网站支付,点SDK&Demo,下载php版的。

3.复制解压的demo包到项目的根目录下

这这个demo包解压的文件夹中,

config.php配置信息,打开有详细说明。

pagepay/pagepay.php用于生成支付按钮或者去往支付按钮跳转的页面。

notify_url.php用于接收支付宝发给本网站的消息,当支付成功就会发送给消息

return_url.php跳回的地址

4.开启php的php_openssl.dll模块

5.在下单成功后使用demo包中的代码生成支付按钮

/*** 为一个订单生成支付宝支付按钮*/functionmakeAlipayBtn($orderInfo){returnrequire('./alipay/pagepay/pagepay.php');}

修改支付宝提供的pagepay.php中的参数为商品实际的参数以及用户的appid和密匙等。

//商户订单号,商户网站订单系统中唯一订单号,必填$out_trade_no =$orderInfo['orderId'];//订单名称,必填$subject =$orderInfo['orderName'];//付款金额,必填$total_amount =$orderInfo['price'];//商品描述,可空$body = $orderInfo['desc'];//设置按钮名称$btnName = $orderInfo['apliBtn'];

在config.php文件中设置

//异步通知地址'notify_url' =>"/eshop/index.php/Home/Order/receive",//同步跳转,支付成功后跳转页面'return_url' => "/eshop/index.php/Home/Order/pay_success",//等其他参数

为了防止这个按钮自动跳转,修改demo文件的源码,在/aop/test/AopClient.php中,注释掉跳转的js代码:

//submit按钮控件请不要含有name属性$sHtml =$sHtml."<input type='submit' value='$btnName'style='''></form>";// $sHtml= $sHtml."<script>document.forms['alipaysubmit'].submit();</script>";return$sHtml;

6.调用函数

$btn =makeAlipayBtn($orderInfo);//输出动态数据到页面$this->assign(array('btn' => $btn,));

7.在页面输出按钮

<p><?phpecho $btn;?></p>

8.编写接收支付成功消息的方法

首先,修改notify_url.php文件

主要是修改付款成功后该订单的状态,付款时间,或者有会员积分的,修改会员积分。

为此封装一个方法在订单模型中,比如:

/*** 订单支付后,设置订单状态为已支付*/public functionsetPaid($orderId){//更新订单的支付状态$this->where(array('id'=> array('eq', $orderId),))->save(array('pay_status'=> '是','pay_time'=> time(),));//更新会员积分$tp =$this->field('total_price,member_id')->find($orderId);$memberModel =M('member');//因为使用大D函数会调用修改前的钩子函数,可能会导致出错,所以调用大M函数$memberModel->where(array('id'=> array('eq', $tp['member_id']),))->setInc('jifen',$tp['total_price']);}

然后在notify_url.php中调用这个方法

else if($_POST['trade_status'] == 'TRADE_SUCCESS') {//判断该笔订单是否在商户网站中已经做过处理//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序//请务必判断请求时的total_amount与通知时获取的total_fee为一致的//如果有做过处理,不执行商户的业务程序//注意://付款完成后,支付宝系统发送该交易状态通知$orderModel =D('Admin/Order');$orderModel->select($out_trade_no);}

然后编写接收消息的方法并引入这个notify_url.php文件

/*** 接收处理支付成功返回的消息*/public function receive(){//接收支付宝支付成功的小时require('./alipay/nofity_url.php');}

9.编写客户付款成功后返回页面的方法

也就是

//同步跳转,支付成功后跳转页面'return_url'=> "/eshop/index.php/Home/Order/pay_success",

中设置的方法。

10. 最后,可以使用支付宝提供的沙箱进行初步测试。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。