2核1G3M服务器88一季度

腾讯云,阿里云百度云等 折扣价→点我←

[DC] 通用支付 API 调用指南 版本号:v1.0.1 discuz 教程

8号当铺 一级用户组

本帖最后由 路人甲 于 2015-1-24 10:29 编辑

[DC] 通用支付 API 调用指南

版本号:v1.0.1
------------------------------------------------------------------------------------------------------------------------------------------------------

1、文档说明

  • 1.1功能描述
为其他第三方 DISCUZ X!提供在线支付调用接口,从而不必再自己开发在线支付功能。用户可统一管理支付接口参数的设置。

  • 1.2阅读对象
面向具有一定的开发 DISCUZ X插件能力的开发、维护和管理人员。
2、调用说明
在需要使用在线支付(RMB支付)时,引用核心调用文件
(payment.lib.class.php)。
第三方插件引用代码
require_once DISCUZ_ROOT.'./source/plugin/dc_pay/payment.lib.class.php'; 
或者
require_once '../ dc_pay/payment.lib.class.php';
引用时注意文件路径

3、文件详解
文件代码存在两个类:PayHook、PayMent。


  • 3.1、PayHook支付服务注册类(static)
该静态类主要用于支付服务的注册、卸载。
核心作用是在用户支付完成后,在向服务器发送已公益免费通知时,根据服
务注册的信息通知第三方插件处理业务。(详见 4、回调说明)
$phr = array(
'plugin'=>'dc_paydemo', //插件标识符
'include'=>'paydemo.class.php', //注册类文件
'class'=>'paydemo', //注册类名称
'return'=>'doreturn', //注册页面跳转同步通知方法
'notify'=>'donotify', //注册服务器异步通知方法
);
PayHook::Register($phr); //注册


注册服务项建议放置在插件的安装文件中,另建议在插件的安装检测文
件(check.php)中检测是否已安装本插件,否则在注册服务时会出错。
PayHook::UnRegister('dc_paydemo');    //卸载
卸载服务项建议放置在插件的卸载文件中

  • 3.2、PayMent支付服务核心类(dynamic)
1、__construct构造函数
参数
参数 说明 必须
plugin 第三方插件标识符 必

如:$pay = new PayMent(‘dc_paydemo’);

2、GetPayType获取可用支付类型
如:$pay-> GetPayType ();
返回:
array(‘alipay’,’tenpay’)


3、GetPayInfo获取指定支付类型的名称及 logo
参数
参数 说明 必须
pt 支付类型标识码,如:alipay 必

如:$pay-> GetPayInfo(‘alipay’);
返回:
array(
‘title’=>’支付宝’ ,
’logo’=>’
)


4、SetPayType设置支付类型
参数
参数 说明 必须
pt 支付类型标识码,如:alipay 必

可多次设置支付类型

如:$pay-> SetPayType(‘alipay’); $pay-> SetPayType(‘tenpay);


5、SetOrder设置订单
参数
参数 说明 必须
orderid 订单 ID,可留空 非
price 总价格,可保留两位小数 必
subject 订单名称 必
body 订单描述 非
showurl 商品页面 非

如:$pay-> SetOrder(
‘2011112313’,
’10.00’,
‘商品标题’,
‘商品描述’,
http://www.xxxx.com/show.php?id=xxx
);

返回:订单号
注:建议 orderid留空,留空会自动创建一个新订单号,使用返回的订单号
写入到贵方插件的订单系统中。



6、GetPayUrl获取支付链接

如:$pay-> GetPayUrl();
返回:支付链接数组,具体由 SetPayType决定


如:array(
‘alipay’=>’http://xxxxxxxxx’,
‘tenpay’=>’http://xxxxxxxxx’
)


7、GetPayForm获取支付表单
参数
参数 说明 必须
button_name 表单按钮名称 非
button_style 表单按钮样式 非
method 表单提交方法 GET OR POST 非


如:$pay-> GetPayForm(‘提交’,’width:80px;’,’get’);

返回:支付表单数组,具体由 SetPayType决定
如:array(
‘alipay’=>’表单代码’,
‘tenpay’=>’代码’
)


4、公益免费通知回调
1、回调流程


支付平台 → 本支付API插件 → 实际调用插件


该回调需使用前置注册的支付服务信息,通过该注册信息通知实际需要
使用的插件,完成该笔公益免费的业务处理。
如果未注册服务,则本支付 API即无法正确通知实际插件,造成该笔付
款无法处理业务。


2、回调处理演示代码(paydemo.class.php)


class paydemo{
public function donotify($orderid){ //支付成功后,服务器异步通知,$orderid为订单号
///////////业务处理/////////////
//不得输出任何字符,不得跳转页面,不得终止代码执行
//根据返回的订单号,处理该订单的信息
//
}
public function doreturn($orderid){//支付成功后,页面跳转同步通知,$orderid为订单号
///////////业务处理/////////////
//业务处理完成后,请跳转到一个支付成功的页面
//dheader('location:http://www.xxx.com/plugin.php?id=dc_paydemo:payok');
global $_G;
dheader('location:'.$_G['siteurl'].'plugin.php?id=dc_paydemo:payok');
}
}

3、更多代码,详见站长窝VIP群文件共享提供的演示插件代码(dc_paydemo)


[backcolor=rgb(255, 0, 255)]站长窝实际应用演示效果图:[/backcolor]


[backcolor=rgb(255, 0, 255)][DC] 通用支付API 调用指南适用于:[/backcolor]
[DC]VIP中心 专业版v1.2.5 DZ建站学习研究分享
http://bbs.zhanzhangwo.com/thread-11322-1-1.html
(出处: 站长窝)

支付宝分享用户组 商业版--------下载地址
http://bbs.zhanzhangwo.com/thread-5928-1-1.html
(出处: 站长窝)

站长窝论坛版权声明 1、本帖标题:[DC] 通用支付 API 调用指南 版本号:v1.0.1
2、论坛网址:站长窝论坛
3、站长窝论坛的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
4、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
5、站长窝论坛一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本帖由8号当铺在站长窝论坛《程序综合区》版块原创发布, 转载请注明出处!
评论
最新回复 (1)
返回
发新帖