readme.txt 7.16 KB
            ╭───────────────────────╮
  ╭────┤           支付宝代码示例结构说明             ├────╮
  │        ╰───────────────────────╯        │
 │                                                                  │
 │     接口名称:支付宝即时到帐接口(create_direct_pay_by_user)    │
 │    代码版本:3.1                                                │
  │     开发语言:PHP                                                │
  │     版    权:支付宝(中国)网络技术有限公司                     │
 │     制 作 者:支付宝商户事业部技术支持组                         │
  │     联系方式:商户服务电话0571-88158090                          │
  │                                                                  │
  ╰─────────────────────────────────╯

───────
 代码文件结构
───────

js_php_utf8

  ├class┈┈┈┈┈┈┈┈┈┈┈┈类文件夹
  │  │
  │  ├alipay_function.php┈┈┈公用函数类文件
  │  │
  │  ├alipay_notify.php┈┈┈┈支付宝通知处理类文件
  │  │
  │  └alipay_service.php ┈┈┈支付宝请求处理类文件

  ├images ┈┈┈┈┈┈┈┈┈┈┈图片、CSS样式文件夹

  ├log.txt┈┈┈┈┈┈┈┈┈┈┈日志文件

  ├alipay_config.php┈┈┈┈┈┈基础信息配置文件

  ├alipayto.php ┈┈┈┈┈┈┈┈支付宝接口入口文件

  ├index.php┈┈┈┈┈┈┈┈┈┈快速付款入口模板文件

  ├notify_url.php ┈┈┈┈┈┈┈服务器异步通知页面文件

  ├return_url.php ┈┈┈┈┈┈┈页面跳转同步通知文件

  └readme.txt ┈┈┈┈┈┈┈┈┈使用说明文本

※注意※
需要配置的文件是:alipay_config.php、alipayto.php

index.php仅是支付宝提供的付款入口模板文件,可选择使用。
如果商户网站根据业务需求不需要使用,请把alipayto.php作为与商户网站网站相衔接页面。
如果需要使用index.php,那么alipayto.php文件无需更改,只需配置好alipay_config.php文件
拿到index.php页面在商户网站中的HTTP路径放置在商户网站中需要的位置,就能直接使用支付宝接口。


─────────
 类文件函数结构
─────────

alipay_function.php

function build_mysign($sort_array,$key,$sign_type = "MD5")
功能:生成签名结果
输入:Array  $sort_array 要签名的数组
      String $key 安全校验码
      String $sign_type 签名类型 默认值 MD5
输出:String 签名结果字符串

function create_linkstring($array)
功能:把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串
输入:Array  $array 需要拼接的数组
输出:String 拼接完成以后的字符串

function para_filter($parameter)
功能:除去数组中的空值和签名参数
输入:Array  $parameter 签名参数组
输出:Array  去掉空值与签名参数后的新签名参数组

function arg_sort($array)
功能:对数组排序
输入:Array  $array 排序前的数组
输出:Array  排序后的数组

function sign($prestr,$sign_type)
功能:签名字符串
输入:String $prestr 需要签名的字符串
      String $sign_type 签名类型
输出:String 签名结果

function log_result($word)
功能:写日志,方便测试(看网站需求,也可以改成存入数据库)
输入:String $word 要写入日志里的文本内容

function query_timestamp($partner) 
功能:用于防钓鱼,调用接口query_timestamp来获取时间戳的处理函数
输入:String $partner 合作身份者ID
输出:String 时间戳字符串

function charset_encode($input,$_output_charset ,$_input_charset)
功能:实现多种字符编码方式
输入:String $input 需要编码的字符串
      String $_output_charset 输出的编码格式
      String $_input_charset 输入的编码格式
输出:String 编码后的字符串

function charset_decode($input,$_input_charset ,$_output_charset) 
功能:实现多种字符解码方式
输入:String $input 需要解码的字符串
      String $_output_charset 输出的解码格式
      String $_input_charset 输入的解码格式
输出:String 解码后的字符串

┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉

alipay_notify.php

function alipay_notify($partner,$key,$sign_type,$_input_charset = "GBK",$transport= "https") 
功能:构造函数
      从配置文件中初始化变量
输入:String $partner 合作身份者ID
      String $key 安全校验码
      String $sign_type 签名类型
      String $_input_charset 字符编码格式 默认值 GBK
      String $transport 访问模式 默认值 https

function notify_verify()
功能:对notify_url的认证
输出:Bool  验证结果:true/false

function return_verify()
功能:对return_url的认证
输出:Bool  验证结果:true/false

function get_verify($url,$time_out = "60")
功能:获取远程服务器ATN结果
输入:String $url 指定URL路径地址
      String $time_out 超时计时器 默认值60
输出:String 服务器ATN结果字符串

┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉

alipay_service.php

function alipay_service($parameter,$key,$sign_type)
功能:构造函数
      从配置文件及入口文件中初始化变量
输入:Array  $parameter 需要签名的参数数组
      Array  $key 安全校验码
      Array  $sign_type 签名类型

function build_form()
功能:构造表单提交HTML
输出:String 表单提交HTML文本



──────────
 如何增加请求参数
──────────

在技术文档的请求参数列表中有诸多请求参数,如果因业务需求等原因要利用这些参数,那么可以按照下面的操作方法来扩充接口功能。

┉┉┉以参数it_b_pay为例┉┉┉
打开alipayto.php文件,在注释“以下参数是需要通过下单时的订单数据传入进来获得”与“/////////////////////////////////////////////////”代码段之间添加以下代码:

/////////////////////////////////////////////////
//扩展功能参数——自定义超时(若要使用,请按照注释要求的格式赋值)
//该功能默认不开通,
//申请开通方式:
//方式一:联系支付宝技术支持申请处理
//方式二:拨打0571-88158090申请
//方式三:提交集成申请(https://b.alipay.com/support/helperApply.htm?action=consultationApply)
$it_b_pay = "";
//超时时间,不填默认是15天。设置范围:1m~15d。,-分隔符,~-范围 , m-分钟,h-小时,d-天,1c-当天(无论何时创建,交易都在0点关闭)
//如:$it_b_pay  = "1m~1h,2h,3h,1c";
/////////////////////////////////////////////////


在“构造要请求的参数数组,无需改动”注释下方的“数组参数$parameter”中增加数组元素【 "it_b_pay"	=> $it_b_pay】


/////////////////////////////////////////////////
$parameter = array(
        "service"		=> "create_direct_pay_by_user",	//接口名称,不需要修改
        "payment_type"		=> "1",               			//交易类型,不需要修改

        //获取配置文件(alipay_config.php)中的值
        "partner"		=> $partner,
        "seller_email"		=> $seller_email,
        "return_url"		=> $return_url,
        "notify_url"		=> $notify_url,
        "_input_charset"	=> $_input_charset,
        "show_url"		=> $show_url,

        //从订单数据中动态获取到的必填参数
        "out_trade_no"		=> $out_trade_no,
        "subject"		=> $subject,
        "body"			=> $body,
        "total_fee"		=> $total_fee,

        //扩展功能参数——网银提前
        "paymethod"		=> $paymethod,
        "defaultbank"		=> $defaultbank,

        //扩展功能参数——防钓鱼
        "anti_phishing_key"	=> $anti_phishing_key,
	"exter_invoke_ip"	=> $exter_invoke_ip,

	//扩展功能参数——自定义参数
	"buyer_email"		=> $buyer_email,
        "extra_common_param"=> $extra_common_param,
		
	//扩展功能参数——分润
        "royalty_type"		=> $royalty_type,
        "royalty_parameters"	=> $royalty_parameters,

        //扩展功能参数——自定义超时
        "it_b_pay"		=> $it_b_pay
);
/////////////////////////////////////////////////


──────────
 出现问题,求助方法
──────────

如果在集成支付宝接口时,有疑问或出现问题,可使用下面的链接,提交申请。
https://b.alipay.com/support/helperApply.htm?action=supportHome
我们会有专门的技术支持人员为您处理