现在网站基本都需要集成支付,当然对于支付来说,支付宝在国内太受欢迎了,所以今天讲解一下支付宝的集成方法,适用于各种网站; 首先我们要先登录b.alipay.com,注册商家申请接口获得PID和KEY,然后下载接口,我现在的是即时到帐接口现在就及时到账接口来 给大家讲解一下 电子商务的网站我先做一个简单的数据库,然后等下再给大家讲为什么要这样做
create database if not exists alipay_shop;
create table if not exists shop(
id int not null auto_increment primary key,
shop_title varchar(30),
shop_sn varchar(20),
shop_des varchar(250),
shop_price double,
status tinyint NOT null default '0',
alipayno varchar(30)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
insert into shop (shop_title,shop_sn,shop_des,shop_price) values ('测试商品','WIXW12345678','这个商品真的没有,只是支付宝测试用','0.01');
shop_title:商品名称
shop_sn :商品订单号
shop_des :商品描述
shop_price:商品价格
status :商品交易状态,未付款为0
alipayno :支付宝的交易号,完成后从支付宝传来
现在看一下下载的目录结构:
[caption id="attachment_238" align="alignnone" width="602"] 支付宝的目录结构[/caption]
我们需要设置的这几个文件,首先我们设置alipay.config.php
$aliapy_config['partner'] = '';//这里输入的申请PID
$aliapy_config['key'] = '';//申请的key
$aliapy_config['seller_email'] = '';//签约的支付宝帐号
$aliapy_config['return_url'] = 'http://127.0.0.1/create_direct_pay_by_user_php_utf8/return_url.php';
//服务器异步通知页面路径,要用 http://格式的完整路径,不允许加?id=123这类自定义参数
$aliapy_config['notify_url'] = 'http://www.xxx.com/create_direct_pay_by_user_php_utf8/notify_url.php';
上边两个是异步同步接口设置必须位置要准确 譬如我设置是根目录下alipay 域名yun.widuu.com 地址就是
$aliapy_config['return_url'] = 'http:/yun.widuu.com/alipay/return_url.php';
//服务器异步通知页面路径,要用 http://格式的完整路径,不允许加?id=123这类自定义参数
$aliapy_config['notify_url'] = 'http:///yun.widuu.com/alipay/notify_url.php';
然后第二部创建数据库连接,我就用mysql结构的来把,然后大家改改就行,方便修改
//conn.php
然后我们创建index.php
';
echo "";
echo ''.$row['order_name'].' ';
echo ' '.$row['price'].' ';
echo ' 支付 "';
echo ' ';
echo '';
}else{
echo "没有产品";
}
点击跳转到alipayto.php然后我们是对alipayto.php文件的设置
header('content-type:text/html;charset=utf-8');
require_once("alipay.config.php");
require_once("lib/alipay_service.class.php");
require_once("conn.php"); //包含数据库操作
date_default_timezone_set('PRC'); //定义时间
$id=(int)$_GET[id]; //获得传来的ID
$sql="select * from shop where id=$id";
$result=mysql_query($sql); //查询ID的结果集
$row=mysql_fetch_assoc($result); //获得一组关联数组
/**************************请求参数**************************/
//必填参数//
//请与贵网站订单系统中的唯一订单号匹配
$out_trade_no = $row['shop_sn']; //修改成数据库的数据库的编号
//订单名称,显示在支付宝收银台里的“商品名称”里,显示在支付宝的交易管理的“商品名称”的列表里。
$subject = $row['shop_name']; //修改成数据库的商品名称
//订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里
$body = $row['shop_des']; //修改成数据库的商品描述
//订单总金额,显示在支付宝收银台里的“应付总额”里
$total_fee = $row['shop_price']; //修改成数据库的价格
然后我们的工作就是给最后同步异步接口做修改return_url.php和notify_url.php
先修改return_url.php
if($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
//判断该笔订单是否在商户网站中已经做过处理
//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
//如果有做过处理,不执行商户的业务程序
}
else {
echo "trade_status=".$_GET['trade_status'];
}
echo "验证成功
";
echo "trade_no=".$trade_no;
//——请根据您的业务逻辑来编写程序(以上代码仅作参考)——
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
我们把//——请根据您的业务逻辑来编写程序(以上代码仅作参考)——这里做修改
$sql="update shop set status=1,alipayno='{$trade_no}' where order_sn='{$out_trade_no}'";
$result=mysql_query($sql);
if($result&&mysql_affected_rows()){
echo "付款成功";
}else{
echo "付款失败
";
echo $trade_no."
";
echo $out_trade_no;
}
//然后打开notify_url.php同样的地方
$sql="update shop set status=1,alipayno='{$trade_no}' where order_sn='{$out_trade_no}'";
$result=mysql_query($sql);
if($result&&mysql_affected_rows()){
echo "success";
}else{
echo "fail";
//注意notify_url.php 中成功输出success 失败输出fail否则不成功的 大家一定要注意
好了就介绍到这里,有什么不懂的可以留言,需要咨询的联系我的QQ:23169450 然后给我留言 担保接口一样就是多了点数据而已
欢迎转载,转载请注明来自微度网络http://yun.widuu.com
发表评论 取消回复