1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 支付宝担保交易接口 php thinkphp支付宝担宝交易接口源码示例

支付宝担保交易接口 php thinkphp支付宝担宝交易接口源码示例

时间:2019-01-06 13:26:04

相关推荐

支付宝担保交易接口 php  thinkphp支付宝担宝交易接口源码示例

先到支付宝官网下载,担宝交易程序,然后集成thinkphp

class PayAction extends Action{

public function doalipay(){

require_once(VENDOR_PATH."Alipay/alipay.config.php");

// require_once("lib/alipay_submit.class.php");

require_once(VENDOR_PATH."Alipay/lib/alipay_submit.class.php");

//$alipay_config=C('alipay_config');

/**************************请求参数**************************/

$payment_type = "1"; //支付类型 //必填,不能修改

$notify_url = ""; //服务器异步通知页面路径

$return_url = ""; //页面跳转同步通知页面路径

$seller_email = "xxxxx@";//卖家支付宝帐户必填

$out_trade_no = $_POST['trade_no'];//商户订单号 通过支付页面的表单进行传递,注意要唯一!

$subject = $_POST['ordsubject']; //订单名称 //必填 通过支付页面的表单进行传递

$price = $_POST['ordtotal_fee']; //付款金额 //必填 通过支付页面的表单进行传递

$quantity = "1"; //商品数量//必填,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品

$logistics_fee = "0.00"; //物流费用 //必填,即运费

$logistics_type = "EXPRESS"; //物流类型 //必填,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)

$logistics_payment = "SELLER_PAY"; //物流支付方式

$parameter = array(

"service" => "create_partner_trade_by_buyer",

"partner" => trim($alipay_config['partner']),

"payment_type" => $payment_type,

"notify_url" => $notify_url,

"return_url" => $return_url,

"seller_email" => $seller_email,

"out_trade_no" => $out_trade_no,

"subject" => $subject,

"price" => $price,

"quantity" => $quantity,

"logistics_fee" => $logistics_fee,

"logistics_type" => $logistics_type,

"logistics_payment" => $logistics_payment,

"body" => '',

"show_url" => '',

"receive_name" => '',

"receive_address" => '',

"receive_zip" => '',

"receive_phone" => '',

"receive_mobile" => '',

"_input_charset" => trim(strtolower($alipay_config['input_charset']))

);

//建立请求

$alipaySubmit = new AlipaySubmit($alipay_config);

$html_text = $alipaySubmit->buildRequestForm($parameter,"get", "确认");

echo $html_text;

}

/******************************

服务器异步通知页面方法

其实这里就是将notify_url.php文件中的代码复制过来进行处理

*******************************/

function notifyurl(){

require_once(VENDOR_PATH."Alipay/alipay.config.php");

require_once(VENDOR_PATH."Alipay/lib/alipay_notify.class.php");

//$alipay_config=C('alipay_config');

$alipayNotify = new AlipayNotify($alipay_config);

$verify_result = $alipayNotify->verifyNotify();

if($verify_result) {

$out_trade_no = $_POST['out_trade_no'];

//支付宝交易号

$trade_no = $_POST['trade_no'];

//交易状态

$trade_status = $_POST['trade_status'];

if($_POST['trade_status'] == 'WAIT_BUYER_PAY') {

//该判断表示买家已在支付宝交易管理中产生了交易记录,但没有付款

//判断该笔订单是否在商户网站中已经做过处理

//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序

//如果有做过处理,不执行商户的业务程序

$data['status'] = 0;

// echo "success"; //请不要修改或删除

//调试用,写文本函数记录程序运行情况是否正常

//logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");

}

else if($_POST['trade_status'] == 'WAIT_SELLER_SEND_GOODS') {

//该判断表示买家已在支付宝交易管理中产生了交易记录且付款成功,但卖家没有发货

//判断该笔订单是否在商户网站中已经做过处理

//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序

//如果有做过处理,不执行商户的业务程序

$data['status'] = 1;

// echo "success"; //请不要修改或删除

//调试用,写文本函数记录程序运行情况是否正常

//logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");

}

else if($_POST['trade_status'] == 'WAIT_BUYER_CONFIRM_GOODS') {

//该判断表示卖家已经发了货,但买家还没有做确认收货的操作

//判断该笔订单是否在商户网站中已经做过处理

//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序

//如果有做过处理,不执行商户的业务程序

$data['status'] = 2;

// echo "success"; //请不要修改或删除

//调试用,写文本函数记录程序运行情况是否正常

//logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");

}

else if($_POST['trade_status'] == 'TRADE_FINISHED') {

//该判断表示买家已经确认收货,这笔交易完成

//判断该笔订单是否在商户网站中已经做过处理

//如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序

//如果有做过处理,不执行商户的业务程序

$data['status'] = 3;

// echo "success"; //请不要修改或删除

//调试用,写文本函数记录程序运行情况是否正常

//logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");

}

else {

//其他状态判断

// echo "success";

//调试用,写文本函数记录程序运行情况是否正常

//logResult ("这里写入想要调试的代码变量值,或其他运行的结果记录");

}

$data['trade_no']=$trade_no;

M('orderinfo')->where(array('order_sn'=>$out_trade_no))->save($data);

echo "success";

}

else {

//验证失败

echo "fail";

}

}

function returnurl(){

require_once(VENDOR_PATH."Alipay/alipay.config.php");

require_once(VENDOR_PATH."Alipay/lib/alipay_notify.class.php");

$alipayNotify = new AlipayNotify($alipay_config);//计算得出通知验证结果

$verify_result = $alipayNotify->verifyReturn();

if($verify_result) {

//请在这里加上商户的业务逻辑程序代码

//——请根据您的业务逻辑来编写程序(以下代码仅作参考)——

//获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表

//商户订单号

$out_trade_no = $_GET['out_trade_no'];

//支付宝交易号

$trade_no = $_GET['trade_no'];

//交易状态

$trade_status = $_GET['trade_status'];

if($_GET['trade_status'] == 'WAIT_BUYER_PAY') {

$data['status'] = 0;

}

else if($_GET['trade_status'] == 'WAIT_SELLER_SEND_GOODS') {

$data['status'] = 1;

}

else if($_GET['trade_status'] == 'WAIT_BUYER_CONFIRM_GOODS') {

$data['status'] = 2;

}

else if($_GET['trade_status'] == 'TRADE_FINISHED') {

$data['status'] = 3;

}

else {

}

$where['order_sn']=$out_trade_no;

M('orderinfo')->where($where)->save($data);

showmessage('付款成功.继续购其它物品',U(GROUP_NAME.'/Index/index'));

}else {

showmessage('支付失败',U(GROUP_NAME.'/Index/index'));

}

}

}

转载请注明来自88导购: ~~~

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