欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

支付宝 含PHP支付接口demo

shiping1 的头像


 

独立建站

 
  • 1、在线签约
  • 2、下载开发包
  • 3、获取PID/key
  • 4、开发
  • 5、测试上线
            ╭───────────────────────╮
    ────┤           支付宝代码示例结构说明             ├────
            ╰───────────────────────╯ 
                                                                   
        接口名称:支付宝即时到账批量退款有密接口(refund_fastpay_by_platform_pwd)
       代码版本:3.3
         开发语言:PHP
         版    权:支付宝(中国)网络技术有限公司
        制 作 者:支付宝商户事业部技术支持组
         联系方式:商户服务电话0571-88158090
 
    ─────────────────────────────────
 
───────
 代码文件结构
───────
 
refund_fastpay_by_platform_pwd-php-GBK
  │
  ├lib┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈类文件夹
  │  │
  │  ├alipay_core.function.php ┈┈┈┈┈┈支付宝接口公用函数文件
  │  │
  │  ├
  │  │
  │  ├alipay_notify.class.php┈┈┈┈┈┈┈支付宝通知处理类文件
  │  │
  │  ├alipay_submit.class.php┈┈┈┈┈┈┈支付宝各接口请求提交类文件
  │  │
  │  └alipay_md5.function.php┈┈┈┈┈┈┈支付宝接口MD5函数文件
  │
  ├log.txt┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈日志文件
  │
  ├alipay.config.php┈┈┈┈┈┈┈┈┈┈┈┈基础配置类文件
  │
  ├alipayapi.php┈┈┈┈┈┈┈┈┈┈┈┈┈┈支付宝接口入口文件
  │
  ├notify_url.php ┈┈┈┈┈┈┈┈┈┈┈┈┈服务器异步通知页面文件
  │
  ├cacert.pem ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈用于CURL中校验SSL的CA证书文件
  │
  └readme.txt ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈使用说明文本
 
※注意※
 
1、必须开启curl服务
(1)使用Crul需要修改服务器中php.ini文件的设置,找到php_curl.dll去掉前面的";"即可
(2)文件夹中cacert.pem文件请务必放置到商户网站平台中(如:服务器上),并且保证其路径有效,提供的代码demo中的默认路径是当前文件夹下——getcwd().'\\cacert.pem'
 
2、需要配置的文件是:
alipay.config.php
alipayapi.php
 
●本代码示例(DEMO)采用fsockopen()的方法远程HTTP获取数据、采用DOMDocument()的方法解析XML数据。
 
请根据商户网站自身情况来决定是否使用代码示例中的方式——
如果不使用fsockopen,那么建议用curl来代替;
如果环境不是PHP5版本或其以上,那么请用其他方法代替DOMDocument()。
 
curl、XML解析方法需您自行编写代码。
 
 
─────────
 类文件函数结构
─────────
 
alipay_core.function.php
 
function createLinkstring($para)
功能:把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
输入:Array  $para 需要拼接的数组
输出:String 拼接完成以后的字符串
 
function createLinkstringUrlencode($para)
功能:把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并对参数值urlencode
输入:Array  $para 需要拼接的数组
输出:String 拼接完成以后的字符串
 
function paraFilter($para)
功能:除去数组中的空值和签名参数
输入:Array  $para 签名参数组
输出:Array  去掉空值与签名参数后的新签名参数组
 
function argSort($para)
功能:对数组排序
输入:Array  $para 排序前的数组
输出:Array  排序后的数组
 
function logResult($word='')
功能:写日志,方便测试(看网站需求,也可以改成存入数据库)
输入:String $word 要写入日志里的文本内容 默认值:空值
 
function getHttpResponse($url, $input_charset = '', $time_out = "60")
功能:远程获取数据
输入:String $url 指定URL完整路径地址
      String $input_charset 编码格式。默认值:空值
      String $time_out 超时时间。默认值:60
输出:String 远程输出的数据
 
function charsetEncode($input,$_output_charset ,$_input_charset)
功能:实现多种字符编码方式
输入:String $input 需要编码的字符串
      String $_output_charset 输出的编码格式
      String $_input_charset 输入的编码格式
输出:String 编码后的字符串
 
function charsetDecode($input,$_input_charset ,$_output_charset) 
功能:实现多种字符解码方式
输入:String $input 需要解码的字符串
      String $_output_charset 输出的解码格式
      String $_input_charset 输入的解码格式
输出:String 解码后的字符串
 
┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉
 
function md5Sign($prestr, $key)
功能:MD5签名
输入:String $prestr 待签名数据
      String $key 私钥
输出:String 签名结果
 
function md5Verify($prestr, $sign, $key)
功能:MD5验签
输入:String $data 待签名数据
      String $sign 签名结果
      String $key 私钥
输出:bool 验证结果
┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉
 
alipay_notify.class.php
 
function verifyNotify()
功能:对notify_url的认证
输出:Bool  验证结果:true/false
 
function verifyReturn()
功能:对return_url的认证
输出:Bool  验证结果:true/false
 
unction getSignVeryfy($para_temp, $sign)
功能:获取返回时的签名验证结果
输入:Array $para_temp 通知返回来的参数数组
      String $sign 支付宝返回的签名结果
输出:Bool 获得签名验证结果
 
function getResponse($notify_id)
功能:获取远程服务器ATN结果,验证返回URL
输入:String $notify_id 通知校验ID
输出:String 服务器ATN结果
 
┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉
 
alipay_submit.class.php
 
function buildRequestMysign($para_sort)
功能:生成要请求给支付宝的参数数组
输入:Array $para_sort 已排序要签名的数组
输出:String 签名结果
 
function buildRequestPara($para_temp)
功能:根据反馈回来的信息,生成签名结果
输入:Array $para_temp 请求前的参数数组
输出:String 要请求的参数数组
 
function buildRequestParaToString($para_temp)
功能:根据反馈回来的信息,生成签名结果
输入:Array $para_temp 请求前的参数数组
输出:String 要请求的参数数组字符串
 
function buildRequestForm($para_temp, $method, $button_name)
功能:建立请求,以表单HTML形式构造(默认)
输入:Array $para_temp 请求前的参数数组
      String $method 提交方式。两个值可选:post、get
      String $button_name 确认按钮显示文字
输出:String 提交表单HTML文本
 
function buildRequestHttp($para_temp)
功能:建立请求,以模拟远程HTTP的POST请求方式构造并获取支付宝的处理结果
输入:Array $para_temp 请求前的参数数组
输出:String 支付宝处理结果
 
function buildRequestHttpInFile($para_temp, $file_para_name, $file_name)
功能:建立请求,以模拟远程HTTP的POST请求方式构造并获取支付宝的处理结果,带文件上传功能
输入:Array $para_temp 请求参数数组
      String $file_para_name 文件类型的参数名
      String $file_name 文件完整绝对路径
输出:String 支付宝返回处理结果
 
function query_timestamp() 
功能:用于防钓鱼,调用接口query_timestamp来获取时间戳的处理函数
输出:String 时间戳字符串
 
┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉
 
 
──────────
 出现问题,求助方法
──────────
 
如果在集成支付宝接口时,有疑问或出现问题,可使用下面的链接,提交申请。
我们会有专门的技术支持人员为您处理
来自 http://www.php100.com/html/itnews/it/2013/0314/12208.html



有了淘宝网开始,人们就开始逐渐的养成了在网上淘东西的习惯。今天我们向大家介绍的是如何实现PHP支付宝接口的方法,让大家轻松实现支付宝与电子商务之间的便捷交互。

在使用支付宝支付的时候,首先必须注册一个支付宝的账户,然后下载支付宝提供的接口文件,通过支付宝提供的接口文件,实现电子商务与支付宝的交互。

在支付宝提供的接口文件中,提供了完整的实例程序,只要依照实例程序中的操作方法,将电子商务网站中指定的数据提交到支付宝提供的数组参数中,然后支付宝通过自己的定义的方法将数据提交到指定的网站中。实现代码如下所示:

require_once("alipay_service.php");
require_once("alipay_config.php");  
$array=explode("@",$info["spc"]);
$arraynum=explode("@",$info["slc"]);
$arrayinfo=array(); //创建数组
$arrayinfo_count=array(); //创建数组
for($i=0;$i
if($array[$i]!=""){
$m=$i+1;
$sqlcart=mysql_query("select * from tb_commodity where tb_commodity_id='".$array[$i]."'",$conn);
$infocart=mysql_fetch_array($sqlcart);//读取数据库中数据
array_push($arrayinfo,$infocart[tb_commodity_name]);//将购物商品的名称写入到数组中
array_push($arrayinfo_count,"商品 $m :$infocart[tb_commodity_name] 数量:$arraynum[$i]");    //将购物商品的数量写入到数组中
}
}
$commodity_name=implode(',',$arrayinfo); //获取商品名称
$commodity_count=implode(',',$arrayinfo_count);  //获取商品描述信息
$parameter = array(
"service" => "trade_create_by_buyer", //交易类型,必填实物交易=trade_create_by_buyer(需要填写物流)
"partner" =>$partner,   //合作商户号
"return_url" =>$return_url, //同步返回
"notify_url" =>$notify_url, //异步返回
"_input_charset" => $_input_charset,  //字符集,默认为GBK
"subject" => $commodity_name,    //商品名称,必填
"body" => $commodity_count,       //商品描述,必填
"out_trade_no" => $ddnumber,//商品外部交易号,订单号,必填,每次测试都须修改
"logistics_fee"=>$yprice, //物流配送费用
"logistics_payment"=>'BUYER_PAY', //物流配送费用付款方式:BUYER_PAY(买家支付)
"logistics_type"=>'EXPRESS',// 物流配送方式:POST(平邮)、EMS(EMS)、EXPRESS(其他快递)
"price" => $amount,//商品单价,必填
"payment_type"=>"1", // 默认为1,不需要修改
"quantity" => "1", //商品数量,必填
"show_url" => $show_url,//商品相关网站
"seller_email" => $seller_email//卖家邮箱,必填
);
$alipay = new alipay_service($parameter,$security_code,$sign_type);
$link=$alipay->create_url();
$smarty->assign("link",$link);

这里介绍的知识通过php来实现电子商务网站与支付宝进行交互的方法。其中涉及到支付宝提供的参数和设置都是个人虚拟的,真实的参数将在实际的运作中由支付宝提供,使用支付宝时,需要想支付宝申请一个账户,然后由支付宝提供相应的参数,就可以应用PHP支付宝接口的功能了。

文章来源:http://hi.baidu.com/promise0603/blog






来自 http://www.codesky.net/article/200911/140772.html





支付宝PHP接口使用  

2010-11-23 19:18:48|  分类: PHP进阶教程 |  标签:_get  支付宝  php  订单  数据库  |字号 订阅

今天在二次开发kppw的时候,使用了支付宝接口,首先去支付宝申请。活得合作id和安全码;
 
根据下载的集成文档。
 
修改alipay_config.php 在里面填写三项。
 
之后设置return_url.php
 
 
    if($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
 
      //更新代码 
     $total=$_GET['total_fee'];
    //插入数据库
 
        //放入订单交易完成后的数据库更新程序代码,请务必保证echo出来的信息只有success
        //为了保证不被重复调用,或重复执行数据库更新程序,请判断该笔交易状态是否是订单未处理状态
        if ($sOld_trade_status < 1) {
            //根据订单号更新订单,把订单处理成交易成功
        }        
    }
    else {
      echo "trade_status=".$_GET['trade_status'];
    }
普通分类: