对接农行网上支付平台

从银行那边获取到对应的接口包

将文件保存在网站的路径中

我是destoon网站系统对接,就放在了api/pay/新建一个文件夹abc/下

完成之后填写接口的配置文件

路径:ebusclient/TrustMerchant.ini

标出的内容  都是需要填写的   对应的证书,联系银行要

配置完成之后  访问测试文件确定是否安装正确

在接下来就是交易流程

首先仿照对应demo从自己的网站中获取接口需要的所有信息  例我在desoon中只需要对接支付充值 因为本身dt的第三方支付就是充值,所以我只需要按照农行接口需要的信息提供就可以了  如代码

<?php
defined('IN_DESTOON') or exit('Access Denied');
require DT_ROOT.'/api/pay/'.$bank.'/ebusclient/PaymentRequest.php';$tRequest = new PaymentRequest();$tRequest->order["PayTypeID"] = "ImmediatePay"; //设定交易类型
$tRequest->order["OrderNo"] = "$orderid"; //设定订单编号
$tRequest->order["ExpiredDate"] = ""; //设定订单保存时间
$tRequest->order["OrderAmount"] = "$charge"; //设定交易金额
$tRequest->order["Fee"] = "$fee"; //设定手续费金额
$tRequest->order["CurrencyCode"] = "156"; //设定交易币种
$tRequest->order["ReceiverAddress"] = ""; //收货地址
$tRequest->order["InstallmentMark"] = "0"; //分期标识
$tRequest->order["CommodityType"] = "0201"; //设置商品种类
$tRequest->order["BuyIP"] = ""; //IP
$tRequest->order["orderTimeoutDate"] = ""; //设定订单有效期
$tRequest->order["OrderDesc"] = "网站充值"; //设定订单说明
$tRequest->order["OrderURL"] = ""; //设定订单地址

$time1 = str_replace('-', '/', timetodate($DT_TIME,3));
$time = explode(' ', timetodate($DT_TIME,6));
$time2 = $time[1];
$tRequest->order["OrderDate"] = $time1; //设定订单日期 (必要信息 - YYYY/MM/DD)
$tRequest->order["OrderTime"] = $time2 ; //设定订单时间 (必要信息 - HH:MM:SS)//2、订单明细
$orderitem = array ();
$orderitem["ProductName"] = "网站充值"; //商品名称
$tRequest->orderitems[0] = $orderitem;//3、生成支付请求对象
$tRequest->request["PaymentType"] = "A"; //设定支付类型
if($DT_PC){$tRequest->request["PaymentLinkType"] = "1"; //设定支付接入方式
}else {$tRequest->request["PaymentLinkType"] = "2"; //设定支付接入方式
}/*
if (isset($_POST['PaymentType']) && isset($_POST['PaymentLinkType']) && $_POST['PaymentType'] === "6" && $_POST['PaymentLinkType'] === "2") {$tRequest->request["UnionPayLinkType"] = ($_POST['UnionPayLinkType']); //当支付类型为6,支付接入方式为2的条件满足时,需要设置银联跨行移动支付接入方式
}
*/
$tRequest->request["ReceiveAccount"] = ""; //设定收款方账号
$tRequest->request["ReceiveAccName"] = ""; //设定收款方户名
$tRequest->request["NotifyType"] = "1"; //设定通知方式
$tRequest->request["ResultNotifyURL"] = 'http://www.ceshi.cn/api/pay/abc/notify.php'; //设定通知URL地址
$tRequest->request["MerchantRemarks"] = ""; //设定附言
$tRequest->request["IsBreakAccount"] = "0"; //设定交易是否分账
$tRequest->request["SplitAccTemplate"] = ""; //分账模版编号
$tResponse = $tRequest->postRequest();
/*print_r($tResponse);
exit('test11');
var_dump($tResponse);exit;*/if ($tResponse->isSuccess()) {// print ("<br>Success!!!" . "</br>");// print ("ReturnCode   = [" . $tResponse->getReturnCode() . "]</br>");// print ("ReturnMsg   = [" . $tResponse->getErrorMessage() . "]</br>");$PaymentURL = $tResponse->GetValue("PaymentURL");// var_dump($PaymentURL);exit;// print ("<br>PaymentURL=$PaymentURL" . "</br>");echo "<script language='javascript'>";echo "window.location.href='$PaymentURL'";echo "</script>";
} else {print ("<br>Failed!!!" . "</br>");print ("ReturnCode   = [" . $tResponse->getReturnCode() . "]</br>");print ("ReturnMsg   = [" . $tResponse->getErrorMessage() . "]</br>");
}?>

其中的有些参数直接写死

上面的代码就是把信息打包好发给农行  农行会返回一个支付链接 浏览器会自动跳转到链接

再完了之后就是接受返回的信息 接口文档中有说明

demo中有示例文件

获取到返回的信息之后  就可以自己处理了   修改本地的支付状态  等等

例我在destoon中的

<?phprequire '../../../common.inc.php';$bank = 'abc';
require DT_ROOT.'/api/pay/'.$bank.'/ebusclient/Result.php';
$PAY = cache_read('pay.php');
//1、取得MSG参数,并利用此参数值生成验证结果对象

$tResult = new Result();
$tResponse = $tResult->init($_POST['MSG']);if ($tResponse->isSuccess()) {$order = $tResponse->getValue("OrderNo");$amount = $tResponse->getValue("Amount");$r = $db->get_one("SELECT * FROM {$DT_PRE}finance_charge WHERE itemid='$order'");if($r){if($r['status'] == 0) {$charge_orderid = $r['itemid'];$charge_money = $r['amount'] + $r['fee'];$charge_amount = $r['amount'];$editor = 'L'.$bank;if($amount == $charge_money){require DT_ROOT.'/api/pay/success.inc.php';$rtnUrl = $MODULE[2]['linkurl'].'charge.php';echo "<script language='javascript'>";echo "window.location.replace('$rtnUrl')";echo "</script>";} else {$note = '充值金额不匹配S:'.$charge_money.'R:'.$amount;$db->query("UPDATE {$DT_PRE}finance_charge SET status=1,receivetime='$DT_TIME',editor='$editor',note='$note' WHERE itemid=$charge_orderid");//支付失败log_write($note, 'labc');exit('error');}}else if($r['status'] == 1) {exit('error');} else if($r['status'] == 2) {exit('error');} else {$rtnUrl = $MODULE[2]['linkurl'].'charge.php';echo "<script language='javascript'>";echo "window.location.replace('$rtnUrl')";echo "</script>";}    }
} else {exit('error');
}
?>

以上基本就完工了

友情提示  浏览器一定要用ie

踩过的坑  跳转到农行支付页面一直不成功  配置信息填写有问题

      返回的信息一直抓不到,日志一步一步扒  总会找到错到哪儿了

转载于:https://www.cnblogs.com/lx0715/p/9370997.html

接口--php对接农行网上支付平台-b2b相关推荐

  1. php 银行支付通道_接口--php对接农行网上支付平台-b2b

    对接农行网上支付平台 从银行那边获取到对应的接口包 将文件保存在网站的路径中 我是destoon网站系统对接,就放在了api/pay/新建一个文件夹abc/下 完成之后填写接口的配置文件 路径:ebu ...

  2. java收款编程_农行网上支付平台-商户接口编程指南-Java_Edition-V3.1.6.pdf

    [实例简介] [实例截图] 目录 1. 简介.............................................................................. ...

  3. java版农业银行_农行网上支付平台_商户接口编程指南-java_edition-v103.pdf

    农行网上支付平台_商户接口编程指南-java_edition-v103 Java Edition V1.0.3 –– 2003/ 11/26 V0.1 2003/ 12/ 10 V0.2 2003-1 ...

  4. 农行app怎么开消息服务器,农行网上支付平台-交易市场接口编程指南.doc

    农行网上支付平台-交易市场接口编程指南 中国农业银行网上支付平台 交易市场 PHP商户接口编程指南 Java Edition V1.0 修订历史纪录 日期版本说明作者2009/11/18V1.0初稿童 ...

  5. java 网银支付收款接口_农行网上支付平台-商户接口编程指南-Java_Edition-V3.0.2.pdf...

    农行网上支付平台-商户接口编程指南-Java_Edition-V3.0.2 中国农业银行网上支付平台 商户接口编程指南 Java Edition V3.0.2 农行网上支付平台 商户接口编程指南 –J ...

  6. 农行支付php,农行网上支付平-B2C接口编程指南-PHP_Edition-V1.0.doc

    农行网上支付平-B2C接口编程指南-PHP_Edition-V1.0 中国农业银行网上支付平台 B2C PHP商户接口编程指南 Java Edition V1.0 修订历史纪录 日期版本说明作者200 ...

  7. 网上支付平台接口使用总结

    2019年年底,也就是12月31号那天,西安这边的项目组工作已经结束,项目组人员调回武汉,时隔两年,终于回武汉了! 这次回武汉,进入一个与政府有关的项目,主要做统一支付平台. 主要是归纳一下支付有关的 ...

  8. java支付系统设计文档_中国邮政储蓄银行网上支付平台商户开发指南Java版V2.1

    网上支付平台商户开发指南 第12页,共76页 上图中一共有6个条目,包括生产用的网关证书(paygate_cert )和生产证书链(operation_ca, operation_ca2, polic ...

  9. 全行业聚合支付平台接口_各类API聚合支付平台

    什么是聚合支付? 聚合支付,是指聚合所有主流的第三方支付通道.多个支付场景.多种支付方式,通过软硬件(SDK.API.POS)的承载形势,链接商户和第三方支付平台.银行系统的综合支付服务.聚合支付不进 ...

最新文章

  1. 计算机书籍:新媒体运营
  2. WildFly 报错 java.lang.NoClassDefFoundError
  3. NTFS权限笔记 2017-12-4
  4. 一文快速理解Java反射(详细对比图)
  5. Android 应用开发---App 移动应用中九种导航设计总结及其优缺点分
  6. Python-Matplotlib可视化(9)——精通更多实用图形的绘制
  7. 104 基于UDP协议的socket套接字编程
  8. LINUX SHELL中echo如何处理特殊字符
  9. Windows如何重装系统
  10. Matlab GUI界面设计
  11. 四4层电梯三菱PLC程序带io表接线图
  12. 关于win10更新的坑,头一次【这台电脑无法运行Windows10,我们无法跟新系统保留的部分】
  13. c语言 fflush stdin,C语言函数:fflush(stdin)
  14. 计算机登录网站慢手机快,电脑上网慢但手机很快有什么解决方法
  15. html给图片绝对定位,html相对定位和绝对定位
  16. Runtime源码剖析-对象
  17. python语言命名规则-一文轻松掌握python语言命名规范规则
  18. 循环语句—for/while/do...while
  19. 2 大数据电商数仓项目——项目需求及架构设计
  20. 用顺序表求集合的交集、并集和差集

热门文章

  1. 电脑重装系统如何分区比较好
  2. 移动端真机调试修改手机host
  3. Oracle11.2.0.4静默安装响应文件db_install.rsp
  4. Ubuntu16.04安装chrome、JDK、IDEA、MYSQL、node.js和npm、angular、git、maven等软件
  5. 高分宽幅多通道SAR——SAR最小天线面积限制
  6. Python中的pynput中组合键的键值
  7. Linux C/C++开发、嵌入式软件开发面试记录 ( 五)
  8. 【毕业设计】基于Springboot+vue.js的校园二手商城系统
  9. 淡谈自然场景下小样本OCR文字识别
  10. 电商项目之Mailgun邮件退信率升高