支付宝集成的讲解

widuu 2012-10-19 PHP技术 3,438 0 喜欢 (0)

现在网站基本都需要集成支付,当然对于支付来说,支付宝在国内太受欢迎了,所以今天讲解一下支付宝的集成方法,适用于各种网站;
首先我们要先登录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 :支付宝的交易号,完成后从支付宝传来
现在看一下下载的目录结构:

支付宝的目录结构

我们需要设置的这几个文件,首先我们设置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 域名www.widuu.com 地址就是
$aliapy_config['return_url']   = 'http:/www.widuu.com/alipay/return_url.php';

//服务器异步通知页面路径,要用 http://格式的完整路径,不允许加?id=123这类自定义参数
$aliapy_config['notify_url']   = 'http:///www.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://www.widuu.com

转载请注明来自微度网络,本文标题:《支付宝集成的讲解》

喜欢 0 发布评论
Top