首页 > 代码库 > PHP在线支付
PHP在线支付
php网站如何做个页面接入网银在线支付接口?
=>有两个是用来接收网银在线的反馈传递页面(这两个页面一般是进行下面的第四步)
一个是配置文件
一个是网银在线的一些函数(一般不需要修改)
1 先做商品支付页面
2 用户确定提交订单(同时本地写入数据库一个唯一的订单号,并设定成未支付状态)
3.提交订单到网银在线支付页面
4用户支付成功后返回网站操作页面(对用户进行操作,数据中的当前订单更改成已支付)
支付宝:
网址:https://b.alipay.com/order/productDetail.htm?productId=2012111200373124&tabId=4#ps-tabinfo-hash
=》您申请的产品需要通过技术开发才能在您的网站上使用,请点此下载集成开发包
╭───────────────────────╮ ────┤ 支付宝代码示例结构说明 ├──── ╰───────────────────────╯ 接口名称:支付宝即时到账批量退款有密接口(refund_fastpay_by_platform_pwd) 代码版本:3.3 开发语言:PHP 版 权:支付宝(中国)网络技术有限公司 制 作 者:支付宝商户事业部技术支持组 联系方式:商户服务电话0571-88158090
─────────────────────────────────
─────── 代码文件结构 ───────
refund_fastpay_by_platform_pwd-php-UTF-8 │ ├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 getHttpResponsePOST($url, $cacert_url, $para, $input_charset = ‘‘) 功能:远程获取数据,POST模式 输入:String $url 指定URL完整路径地址 String $cacert_url 指定当前工作目录绝对路径 Array $para 请求的数据 String $input_charset 编码格式。默认值:空值 输出:String 远程输出的数据
function getHttpResponseGET($url, $cacert_url) 功能:远程获取数据,GET模式 输入:String $url 指定URL完整路径地址 String $cacert_url 指定当前工作目录绝对路径 输出: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
function 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 时间戳字符串
┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉
────────── 出现问题,求助方法 ──────────
如果在集成支付宝接口时,有疑问或出现问题,可使用下面的链接,提交申请。 https://b.alipay.com/support/helperApply.htm?action=supportHome 我们会有专门的技术支持人员为您处理。
网银在线银行卡在线支付网关
银行卡在线支付=》
商户系统设计人员、编程人员及测试人员。该人员需要具备一定的网站开发能力,了解JAVA、ASP、PHP、ASP.NET等开发语言中的一种,并对信息安全有一定的认识。
名词 | 解释 |
商户 | 指已注册成为网银在线用户、并使用网银在线产品实现其收付费功能需求、为其用户提供各类产品或者相关服务的企业或个人。 |
消费者 | 指在商户网站等系统购物的企业或个人。 |
购物 | 指消费者在商户网站购买相关产品或服务。 |
掉单 | 网银在线管理后台,订单是支付成功状态,商户自己网站后台是未支付状态。两个后台订单状态不一致的现象称为掉单。 |
服务器异步通知功能 | 网银在线服务器异步方式发送支付结果给商户网站。能够解决掉单。对应AutoReceive程序示例。 |
相关资源:
支付流程演示链接 http://chinabank.com.cn/aminute/
商户管理登录地址:https://merchant3.chinabank.com.cn
网银在线 : http://www.chinabank.com.cn/gateway/help.html
支付平台网关接口地址:https://pay3.chinabank.com.cn/PayGate
登陆网银在线商户后台 https://merchant3.chinabank.com.cn/login.do
网银在线官网地址:http://www.chinabank.com.cn
B2C银行卡支付的接口文档:http://www.chinabank.com.cn/gateway/chinabank.zip
银联在线支付:
文档和接口下载地址: https://online.unionpay.com/mer/doc/viewDoc.action ---php接口开发包 (并附有“银联在线支付(UPOP) ECSHOP支付插件”)