WHMCS-JSJ-API-Pay-Gateway

为金莎云(原金沙江)支付免签API写的WHMCS接口。请合理使用。

本接口用于WHMCS与金沙江API接口对接,以完成支付宝/微信/QQ钱包免签支付。

测试可用版本:WHMCS 7.x

理论支持WHMCS 6.x、5.x,未测试。

接口作者与金莎云(原金沙江)无关,不对使用该接口或平台而产生的任何问题负责,请了解。

如果有需要手动补单的,可以在WHMCS系统中使用”添加付款”的功能,请注意填写交易流水号为:JSJApiPay_开头的唯一流水号,以防止重复回调被刷余额。

【PS:这个接口不是帮你挂个监控手动转账订单,而是由金沙江的即时到账接口代收货款,可以申请提现至支付宝或微信。】

快速开始

首先在金沙江API后台 注册/登录账户

下载本接口,并把文件放到站点的/modules/gateways/里。

进入WHMCS后台,系统设置-付款-支付网关-All Payment Gateways选项卡设置中:启用本接口(不同支付方式有独立配置),并在 Manage Existing Gateways 选项卡中填写APIID&APIKEY等,手续费仅用于WHMCS内部记账统计,但是必须填写(可以填0,WHMCS记账有手续费这么个特性,不会对实际支付金额产生影响),涉及货币转换的,请添加CNY货币,并选择转换为CNY。

完成√

说明

代码仅供参考,有问题/BUG等请发Issue(请先确认您的WHMCS版本为6.x/7.x)

使用的API为金沙江API:https://yun.jsjapp.com/

依据金莎云(原金沙江)官方文档写的。未来官方有改动也会更新。

请了解这边订单号是用UID做的,如果您的WHMCS系统订单数量超过99999999个,请联系我帮您修改为其他参数 ´・ω・)ノ

PS:如果你需要吧手续费分摊给用户,请参考这个插件:WHMCS-Gateway-Fees (第三方),本插件不会额外添加手续费(建议使用此插件添加,不建议手工修改支付网关文件添加,会产生取整影响回调判断的问题。)

(本来为自用,感觉金莎云(原金沙江)提供的服务还是很不错的,所以公开了,请合理使用)

PPS:微信支付/QQ支付需要审核开通后才能使用无限期维护中。

TODO

清理冗余代码

更新日志

最近版本更新:v0.23(2019-08-11-1)

2019-08-11-1:

修正一些描述Typo。

增加微信独立支付,适配金莎江最新微信接入。

2019-07-02-1:

聚合支付适配临时接口,当前仅支付宝WAP可用。

删除一些Tags。

2018-12-02-01:

支付宝、微信、QQ适配新”远程云发卡接口”,比以前更稳了。

增加支付宝移动端独立支付接口。

更新各类失效链接。

删减不必要的代码段。

一些TABの格式化。

2018-10-09-01:

作为历史版本,完善一些细小的偏差。

2018-06-19-01:

修复支付宝Web在部分订单号过小的情况下传值订单格式不正确的问题。

支付宝订单格式:8.apiid.”001Invoice”.$invoiceid.”Ali”;

2018-06-02-01:

移除支付宝WAP接口(平台已整合)。

适配新平台,更新说明等。

修改订单格式。

综合格式要求和扩展性,新格式改为如下:

微信:wx23333001Invoice1wx

QQ:qq23333001Invoice1qq

支付宝:ali23333001Invoice1a

其中23333为示例apiid,后接001可修改标识不同站点(当前未放置设定中,如有需要可自行手工修改),末尾做分割符及补足20字符。

取消同步回调,支付完成统一转到账单页等待异步回调。

旧版本更新直接覆盖,并手动删除JSJApiPay_Alipay_Wap.php即可。

2018-01-17-01:

修复多货币情况下,回调转换问题。感谢 @Senrt 的反馈。

优化支付宝WAP支付体验,现直接转到账单页等待异步更新(支付成功会自动刷新)。

增加微信/QQ支付审核提示,可跳转至金莎云(原金沙江)申请审核。

增加金莎云(原金沙江)回调结果支持,在金莎云(原金沙江)面板可显示回调结果。

增加金沙江注册链接(邀请)

调整部分变量为小写,优化代码逻辑,改用定界符输出页面,删除部分多余变量。

优化站点地址获取,去除多余”/”符号。

细节优化。

2017-06-26-01:

修复一些拼写错误。

2017-06-10-01:

Bugs Fix, 修复安全逻辑导致微信/QQ支付回调验证失败的问题。

2017-06-06-01:

改版,不同支付方式可独立设定。

新增微信扫码支付,并极致优化支付体验。

新增QQ钱包支付,支持手机扫码,浏览器唤醒QQ支付等,手机访问可直接启动。

回调地址等依据站点设置自动生成,无需手动修改了。

修正细节错误,简化设定。

逻辑优化,提早判断是否已抵达账单页面,兼容手续费插件,减少账单金额更改几率。

优化金额更改的错误提示(引导联系客服或自助充值)。

更多信息见 https://github.com/tutugreen/WHMCS-JSJ-API-Pay-Gateway/commits/master

请注意!文件名有更改!更新请删除所有旧文件!

此版本已经过N遍测试优化可用,如遇问题优先发Issues。

2017-06-26-01:

修复一些细节拼写错误。

2017-06-04-01:

Bugs Fix,修复callback内的拼写错误导致WAP无法正常回调的问题。

2017-06-04-01:

Bugs Fix,一些修正.

修复回调地址组合缺失系统地址的问题,修正拼写错误,修改名称,修改回调认证失败的目的地(WAP方式回调落地页待完善).

终于码完了微信扫码支付,极致优化支付体验。

2017-06-03-03:

独立出WAP端支付设定,适合纯手机WAP支付。电脑打开也是WAP支付,独立出来后需要至后台支付接口启用WAP支持和设定APIID等信息(可与WEB方式不同,但不建议)。

2017-06-03-02:

为支持多方式支付进行预改版,更改部分文件路径,优化部分代码,请需要更新的用户删除全部旧文件再安装!并需要重新至后台设定接口APIID等信息。

目前如无特殊需求不需要手动修改回调地址了,系统会依据站点地址自动生成。

请注意如果您要申请微信支付等需要绑定回调地址的接口,请确认申请域名填写正确

2017-06-01:

修正一些注释错误

2016-11-18:

修复回调非子目录,导致404的问题

2017-04-17:

更新官方新域名,并支持HTTPS。

请注意!官方已修改接口域名,请在2017-04-17之前下载接口的用户尽快更新代码(对支付和之前的订单无任何影响)

如果在2017年04月17日0点整仍未更改的,接口将无法使用。

官方现已支持 HTTPS 回调地址

2016-11-03:

依据官方要求更新参数编号规范

请注意!官方已修改订单编号(addnum)参数编号规范,请在2016-11-03之前下载接口的用户尽快更新代码(对支付和之前的订单无任何影响)

如果在2016年11月10日0点整仍未更改的,接口将无法使用。(详情见:官方贴 (链接已失效))

常见问题

Q:订单流水号存在”JSJApiPay”,是否可以修改?

A:可以的,修改 callback/JSJApiPay_callback.php 相应部分即可(已注释指出),请注意保持唯一性以防刷单。

Q:如何修改用户支付完后跳转到的落地页面。

A:编辑 callback/JSJApiPay_callback.php 相应部分即可(已注释指出),可修改完成支付验证后的地址,默认为跳转到账单页面。

Q:部分支付方式可能需要审核(例如微信支付/QQ支付),如何开通?

A:登陆金莎云(原金沙江)API,账户管理下可以开通相应接口,请注意审核的回调域名填写正确,以免无法正确回调。

Q:为什么有时支付后系统已经到账,但实际账单未支付?

A:请检查订单金额是否和初次提交有更改,例如滞纳金等设定可能影响账单金额导致没有完全支付。

Q:为什么一开始能获取微信支付二维码的,但后来又获取失败了?

A:同上,当账单金额被更改时(例如客户手动使用余额支付部分款项,或者产生了滞纳金),获取会失败,遇到这些情况可以分拆账单,如有顾客有多笔未支付账单,可以使用合并支付生成新账单,或者自助充值,用余额支付剩余款项。

非本接口问题请联系

金莎云(原金沙江)问题请联系其官方客服咨询。

接口问题可联系:窝的Email:yuanming(@)tutugreen.com

Copyright 2016~2019 Tutugreen.com “o((>ω< ))o”. Code released under the MIT license.