php接入支付宝接口详细说明

发表于2015-06-24 16:39  |  次阅读  |  0条评论  |   作者:siru90

支付接口,一般包括:创建交易订单接口,查询交易信息接口等等。每个接口步骤差不多,只是组装的数据(如下代码中的$req_data)不同,按接口文档为准

下面介绍
创建交易订单接口步骤说明:
【1】通常要得到商户的partner,key,web收银台地址,网关地址,等等,这些需要和支付宝线下签订协议,才有的
$alipay_config['partner']   ////合作身份者id
$alipay_config['partner_sdk']  //同合作身份者id
$alipay_config['seller_email']  //商家支付宝账号
$alipay_config['seller_email_sdk']  //同商家支付宝账号
$alipay_config['key']  //安全检验码,以数字和字母组成的32位字符
其他参数 查看apipay.config.php

【2】配置请求参数
$notify_url = ""    //服务器异步通知页面路径
$call_back_url = ""  //页面跳转同步通知页面路径
$merchant_url = "" //操作中断返回地址
$seller_email = "" //卖家支付宝帐户  即$alipay_config['seller_email']
$out_trade_no = “” //商户订单号
$subject = “” //订单名称  从你的数据库中读取
$total_fee = “”  //付款金额  从你的数据库中读取

//请求业务参数详细
$req_data = '<direct_trade_create_req><notify_url>' . $notify_url . '</notify_url><call_back_url>' . $call_back_url . '</call_back_url><seller_account_name>' . $seller_email . '</seller_account_name><out_trade_no>' . $out_trade_no . '</out_trade_no><subject>' . $subject . '</subject><total_fee>' . $total_fee . '</total_fee><merchant_url>' . $merchant_url . '</merchant_url></direct_trade_create_req>';
 

//构造要请求的参数数组,无需改动
$para_token = array(
"service" => "alipay.wap.trade.create.direct",
"partner" => trim($alipay_config['partner']),
"sec_id" => trim($alipay_config['sign_type']),
"format" => $format,
"v" => $v,
"req_id" => $req_id,
"req_data" => $req_data,
"_input_charset" => trim(strtolower($alipay_config['input_charset']))
);

【3】至此请求参数构造好了,建立请求,获取 tonken
//建立请求
$alipaySubmit = new AlipaySubmit($alipay_config);
$html_text = $alipaySubmit->buildRequestHttp($para_token);
 
//URLDECODE返回的信息
$html_text = urldecode($html_text);
 
//解析远程模拟提交后返回的信息
$para_html_text = $alipaySubmit->parseResponse($html_text);
 
//获取request_token
$request_token = $para_html_text['request_token'];

【4】根据授权码token调用交易接口alipay.wap.auth.authAndExecute
//业务详细
$req_data = '<auth_and_execute_req><request_token>' . $request_token . '</request_token></auth_and_execute_req>';

//构造要请求的参数数组,无需改动
$parameter = array(
"service" => "alipay.wap.auth.authAndExecute",
"partner" => trim($alipay_config['partner']),
"sec_id" => trim($alipay_config['sign_type']),
"format" => $format,
"v" => $v,
"req_id" => $req_id,
"req_data" => $req_data,
"_input_charset" => trim(strtolower($alipay_config['input_charset']))
);

//建立请求
$alipaySubmit = new AlipaySubmit($alipay_config);
$html_text = $alipaySubmit->buildRequestForm($parameter, 'get', '确认');
return $html_text;  //获取支付url接口
【5】至此,获取上面的返回接口,就可以进行支付,
支付成功,或者失败,或者中断由以上三个参数
$notify_url = ""    //服务器异步通知页面路径
$call_back_url = "xxxx.php"  //页面跳转同步通知页面路径
$merchant_url = "" //操作中断返回地址

二、$call_back_url
【1】引入支付宝文件
require_once(dirname(__FILE__).'/alipay.config.php');
require_once(dirname(__FILE__).'/lib/alipay_notify.class.php');

计算得出通知验证结果
$alipayNotify = new AlipayNotify($alipay_config);
$verify_result = $alipayNotify->verifyReturn();

【3】获取返回的参数,根据自己的业务逻辑 处理本地的数据

点此下载源码

本站关键字:sunny90 web开发 数据库 移动开发 服务器 Nginx Mysql PHP
Copyright © sunny90版权所有 power by sunny90.com  
湘ICP备14012284号-1,粤公网安备 44030602000307号