进入授权地址 ,购买后在授权列表点击下载完整安装包。
服务器环境
- PHP版本:>=7.1,推荐7.4或8.0
- MySQL版本:5.6或5.7
伪静态配置
直接上传后访问即可完成安装!创建好网站之后,需要配置伪静态才能正常发起支付。以下分别是Nginx、Apache、IIS服务器的伪静态配置方法:
Nginx
location / {
if (!-e $request_filename) {
rewrite ^/(.[a-zA-Z0-9\-\_]+).html$ /index.php?mod=$1 last;
}
rewrite ^/pay/(.*)$ /pay.php?s=$1 last;
}
location ^~ /plugins {
deny all;
}
location ^~ /includes {
deny all;
}
Apache
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.[a-zA-Z0-9\-\_]+).html$ index.php?mod=$1 [QSA,PT,L]
RewriteRule ^pay/(.*)$ pay.php?s=$1 [QSA,PT,L]
</IfModule>
IIS
<rule name="payrule1_rewrite" stopProcessing="true">
<match url="^(.[a-zA-Z0-9-_]+).html"/>
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="index.php?mod={R:1}"/>
</rule>
<rule name="payrule2_rewrite" stopProcessing="true">
<match url="^pay/(.*)"/>
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="pay.php?s={R:1}"/>
</rule>
网站信息配置
- 在 系统设置->网站信息配置 里面,可以配置网站名称、SEO信息、客服QQ、注册开关、测试支付开关、验证码开关等。
- 如果开启注册付费或测试支付,需要事先在用户列表,手动添加一个用于自己收款的商户!
支付与结算配置
- 在 系统设置->支付与结算配置 里面,可以配置支付最大最小金额、商品屏蔽关键词、支付IP黑名单、支付账号黑名单、结算开关、结算规则等。
- 支付账号黑名单的拦截只支持支付宝JS支付与微信公众号支付方式,支付宝黑名单填写2088开头的UserId,微信黑名单填写用户在公众号对应的Openid。
- 结算总开关默认开启自动结算,结算周期选T+1,这种情况下在每日0点如果定时任务正常执行,则会自动生成结算列表。管理员可以在第二天进行结算,实现资金T+1到账。
- 结算周期如果选择T+0并且开启手动结算,则用户中心会显示手动提现菜单,用户可以实时提现全部的商户余额(不推荐此种模式)。
接口配置
基本概念
易付通支付系统有强大的支付接口扩展能力,首先需要明白以下几个概念。
支付方式:
支付方式用于定义发起支付的调用值(在前台开发文档里面显示)与支付方式名称。目前系统自带6种支付方式,它们的名称和调用值分别是支付宝(alipay)、微信支付(wxpay)、QQ钱包(qqpay)、云闪付(bank)、京东支付(jdpay)、PayPal(paypal)
支付插件:
支付插件是对接某个支付平台的具体实现,可以自行开发定制。一个支付插件可以包含多种支付方式,例如《支付宝官方支付》插件只有1种支付方式alipay,《QQ钱包官方支付》插件只有1种支付方式qqpay,《威富通RSA》插件包含5种支付方式alipay、wxpay、qqpay、bank、jdpay
支付通道:
支付通道需要管理员手动添加,每个支付通道都对应1个支付方式和1个支付插件,可以配置支付密钥与单独的费率。
添加支付通道
- 在支付通道列表点击添加,分别需要选择支付方式与支付插件,通道模式必须选“平台代收(默认)”,否则无法正常发起支付以及无法给用户正常增加余额!。
- 分成比例是填写的给商户分成比例,如果填写95即为用户支付100元到账商户余额95元,实际支付费率是5%
- 分成比例有2个地方可以配置,其中一个是支付通道信息这里,另外一个是用户组信息那里。分成比例优先级:用户组>支付通道。
- 部分支付插件如果不知道申请地址的,可以查看支付插件列表,上面有对应链接。
- 支付宝官方支付,申请地址,需申请电脑网站支付+手机网站支付(如果条件不足可以申请当面付,但是当面付稳定性不如电脑/手机网站支付)。支付插件使用“支付宝官方支付”。
- 微信官方支付,申请地址,同时还需要有已认证的服务号或小程序,NATIVE支付=扫码支付,JSAPI支付=公众号支付和小程序支付。扫码支付只能在电脑或手机浏览器支付;H5支付只能在手机浏览器支付;公众号支付和小程序支付均可实现电脑+手机浏览器+微信内浏览器支付。支付插件使用“微信官方支付”。
- QQ钱包官方支付,申请地址,目前不开放申请,可在金易汇申请。支付插件使用“QQ钱包官方支付”。
- 金易汇,申请地址,只有QQ钱包
- 哆啦宝,申请地址
- 汇商通盈,申请地址,支付插件使用“银联前置”
- 汇付,申请地址,支付插件使用“adapay聚合支付”
- 汇付斗拱平台,申请地址
- 汇付宝,申请地址
- 掌易收,申请地址
- 新生支付,申请地址
- 银盛支付,申请地址
- 首信易支付,申请地址
- 银联商务,申请地址
- 通联支付,申请地址
- 一体支付,申请地址
- 联动优势,申请地址
- 富友支付,申请地址
- 杉德支付,申请地址
- 易票联支付,申请地址
- 付呗聚合支付,申请地址
新版支付宝接口RSA密钥配置教程
阅读此教程之前,要仔细分清【公】和【私】这2个字,如果你连这2个字都分不清的话就不要往下看了!!!
第一步:申请支付宝官方支付接口
首先需要申请支付宝官方支付接口,如果没申请接口,即使是配置上密钥也是无法使用的。
申请地址是:https://b.alipay.com/signing/productSetV2.htm
第二步:下载“支付宝开放平台开发助手”
支付宝开放平台开发助手下载地址:https://ideservice.alipay.com/ide/getPluginUrl.htm?clientType=assistant&platform=win&channelType=WEB
安装完后直接运行即可。
第三步:点击【生成密钥】(加密算法都为默认,不用改),如下图所示
第四步: 进入支付宝开放平台密钥页面,可以看到APPID,将APPID填写到网站后台。
然后点击【接口加签方式】后面的【设置】
接口加签模式选择“公钥”,然后将刚才在软件里面生成的【应用公钥】填写到下方输入框内:
保存设置之后,会出现一个【支付宝公钥】,将支付宝公钥复制后填写到网站后台。
至此,支付宝新版接口的密钥已经配置完毕了。
要注意的是【支付宝公钥】和【应用公钥】是不一样的,千万不能搞混了!另外【应用公钥】和【应用私钥】是一一对应的,也就是填写到网站后台的【应用私钥】和提交到支付宝那边的【应用公钥】是同一对才可以!
如何从私钥证书中提取私钥
部分支付通道要用到pem格式的私钥文件,但是支付平台给的是带密码的私钥证书(jks、pfx或p12)格式。下面介绍2种从私钥证书中提取私钥的方法。
1、如果文件格式是jks,则源格式选JKS;如果文件格式是pfx或p12,则源格式选PKCS12,目标格式选PEM
2、选中证书文件,并填写证书密码,转换后即可得到pem格式的私钥文件。
使电脑软件KeyStore Explorer
1、下载KeyStore Explorer软件,选Windows的第一个就可以。下载后安装。
2、打开KeyStore Explorer,点击打开按钮,选择支付平台给你的pfx或p12格式的证书文件。
3、输入该私钥证书的密码,成功进入后如下所示
4、在私钥证书上点右键->Export->Export Private Key
5、密码还是输入和刚才一样的密码,导出类型选第一个
6、注意上面的Encrypt一定要取消勾选,下面选择导出的目录,然后点Export
7、导出成功,在导出目录就可以看到pkcs8格式的私钥,改后缀名为pem即可使用。
企业付款
企业付款是用于批量转账的,包含支付宝、微信、QQ的转账接口,都需要企业资质才能申请到。
支付宝转账接口
需要申请《转账到支付宝账户》,申请地址:https://b.alipay.com/signing/productDetailV2.htm?productId=I1012000291000001000
添加支付插件为“支付宝官方支付”的支付通道,选中即可使用。
微信企业付款接口
需要先在微信支付后台开通企业付款功能。
添加支付插件为“微信官方支付”的支付通道,选中即可使用。
结算账号必须都为Openid,用户前台可以扫码自助获取。
QQ钱包企业付款接口
需要先在QQ钱包支付后台开通企业付款功能。
添加支付插件为“QQ钱包官方支付”的支付通道,密钥配置处需填写操作员ID和操作员密码,即为登录QQ商户平台的账号密码。
批量转账
如果没有企业资质,支付宝可以使用网页版的批量付款功能,直接导入Excel就能批量转账。在生成的结算批次点击“下载CSV”,稍微变更一下格式就能提交支付宝批量付款。
实名认证
实名认证接口主要分为3大类:支付宝扫码认证、微信扫码认证、运营商手机号三要素认证。
支付宝扫码认证
- 支付宝身份验证:申请地址,该接口费用1元/人,支持人脸识别,同一个人重复验证不重复收费。
- 支付宝实名信息验证:申请地址,该接口完全免费,但不支持人脸,而且申请困难,基本上不给通过。
- 阿里云金融级实人认证:申请地址|获取密钥,该接口费用1元/人,支持人脸识别,同一个人重复验证不重复收费。无需签约,只需要阿里云企业认证账号即可开通。
微信扫码认证
运营商手机号三要素认证
- 手机号三要素实名认证:点击进入
常见问题
用户支付成功,在扫码页面不跳转,并且后台订单显示未支付
- 首先去上游支付接口网站查看订单,状态是否已支付,如果是未支付,那就是上游支付网站的问题,不是你自己网站的问题!
- 检查伪静态是否已经配置正确,可以点击左侧“搭建教程”查看。
- 在后台网站信息配置里面,有个“回调专用网址”,必须留空,或填写正确的能访问的网址!
- 服务器有开启防火墙、防CC的,需要关闭,否则上游支付接口无法异步通知到本站!
- 如果是对接的支付宝官方支付,需要检查SSL证书是否使用的Let’s Encrypt品牌的免费证书(宝塔自带的SSL就是这个),如果是的话需要换掉,这个品牌的证书支付宝不认。可以去腾讯云或阿里云申请免费SSL证书。
- 去上游支付网站点重新通知(补单),可以重试异步通知。
用户支付成功,后台对应订单显示已支付,但是商户网站没有订单或显示未支付
- 那是因为用户支付成功后直接关闭了网页或者直接点返回了,没有等页面跳转回商户网站。
- 另外商户网站可能有防火墙防CC等,导致易支付无法异步通知到商户网站。
- 如果商户网站是自行开发对接的,也可能是对接的有问题,需要商户网站根据开发文档自行检查代码。
- 在订单列表点重新通知(补单),可以重试异步通知。
微信公众号支付,提示redirect_uri域名与后台配置不一致
- 需要在【微信公众平台->公众号设置->功能设置】设置网页授权域名。
微信公众号支付,提示当前页面的url未注册
- 需要在【微信支付商户平台->产品中心->开发配置】设置JSAPI支付授权目录,直接填写你自己网站首页的网址即可。
进阶教程
微信小程序封装H5支付
首先确保你申请过微信官方支付接口,并且能够以企业资质认证小程序。
1、下载小程序支付页面源码
2、将源码里面的 pages/pay 目录整合到你自己的任意小程序源码中,然后修改 app.json 的路由配置。不要直接把上面的小程序源码直接发布了,否则肯定审核不通过!
3、在【小程序后台->开发->开发设置->服务器域名】设置request合法域名
4、将改好的小程序源码发布上线并审核通过。
5、在后台公众号小程序列表,先添加一个微信小程序,然后在支付通道密钥配置那里,绑定刚才添加的微信小程序。
6、以上小程序源码属于旧版小程序,后台“微信小程序支付跳转小程序页面路径”请勿填写,或者你也可以自行根据接口开发小程序页面。
注:一个微信小程序只能在一个网站使用,不能在多个网站同时使用!否则会经常出现“access_token is invalid or not latest”错误提示。
服务商直清模式是指平台不接管资金,商户资金由上游结算给商户。
自有微信或支付宝服务商
- 添加支付通道,支付插件选“微信官方支付服务商版”,通道模式选“商户直清”。
在配置密钥里面,子商户号填写[submchid],如下图所示。这里的submchid是可以自定义的,与下面步骤填写的保持一致即可。
2.在用户组设置里面,新增一个用户组,微信选刚才添加的支付通道,用户变量处填写submchid:子商户号,如下图所示
3.让用户扫描微信服务商的进件二维码进行进件,或在微信服务商后台帮用户进件,得到一个子商户号。
4.在用户列表,给对应用户分配该用户组后,点击【编辑】->【自定义接口信息】,在此处填写该用户所使用的子商户号,如下图所示
- 这样用户发起微信支付就会用他自己的商户进行支付了,平台不需要给商户结算。如果设置的商户分成比例不是100,那么用户需要先在用户中心充值余额,支付的时候作为手续费进行扣除。
- 在网站信息配置,[用户编辑自定义接口信息]开启后,这样用户就可以在用户中心自己修改子商户号(不建议开启)。
其他银行服务商接口(以信汇支付为例)
- 添加支付通道,支付插件选“信汇支付”,通道模式选“商户直清”。
在配置密钥里面,商户号填写[appid],商户密钥填写[appkey],如下图所示,这里的appid和appkey是可以自定义的,与下面步骤填写的保持一致即可。
在用户组设置里面,新增一个用户组,选刚才添加的支付通道,用户变量处填写appid:商户号,appkey:商户密钥,如下图所示
在用户列表,给对应用户分配该用户组后,点击【编辑】->【自定义接口信息】,在此处填写该用户所使用的信汇支付商户号和密钥,如下图所示
支付插件开发
插件文件说明
支付插件全部放在plugins目录下,可以参考其他插件进行开发。
例如一个支付插件名字是abcpay,则插件代码应该在/plugins/abcpay/abcpay_plugin.php里面。
插件方法说明
在插件代码里面$info是插件信息
接着是定义插件方法,public的方法可以直接通过地址栏访问,所有需要访问的插件方法都不能有方法参数,访问规则如下:
跳转支付接口的入口方法是submit(),API接口支付的入口方法是mapi(),这2个方法名称是系统固定的,submit()方法不能没有,mapi()方法可以没有。
剩余的方法可以自行实现具体的支付页面与回调页面。
插件方法返回值说明
返回值格式:
返回类型 | 返回代码 |
---|---|
跳转到url | [‘type’=>’jump’,’url’=>’跳转到的链接’] |
显示html代码 | [‘type’=>’html’,’data’=>’HTML代码’] |
显示json字符串 | [‘type’=>’json’,’data’=>{JSON数组}] |
显示指定页面 | [‘type’=>’page’,’page’=>’页面文件名称’,’data’=>{变量数组}] |
显示扫码页面 | [‘type’=>’qrcode’,’page’=>’页面文件名称’,’url’=>’二维码链接’] |
显示小程序跳转页面 | [‘type’=>’scheme’,’page’=>’页面文件名称’,’url’=>’小程序跳转链接’] |
返回错误提示 | [‘type’=>’error’,’msg’=>’提示内容’] |
注:以上的“页面文件名称”,均为/includes/pages/目录下的文件名,不包含后缀名。
暂无评论内容