Wenprise Alipay Gateway ForWooCommerce支付宝支付网关插件设置教程
阅读时间: 30 分钟
在这个插件中,我们使用的是「蚂蚁金服开放平台」中的「开放平台密钥」,而不是其他类型的密钥,请注意区分。如果您现有的 「mapi 网关密钥」,需要升级或重新申请开放平台密钥后才可以使用本插件。
- 打开支付宝 PID 和公钥管理页面
打开页面:https://openhome.alipay.com/platform/keyManage.htm、用你的支付宝账户登录。
- 获取 APPID、开始设置应用公钥
下图中的 「APPID」就是我们插件中需要的 APPID,把他复制下来,粘贴到插件的「APPID」处。然后,依次点击下图中的「开放平台密钥」、「设置应用公钥」
- 在弹出的窗口中点击「设置应用公钥」
设置应用公钥,供支付宝验证我们使用私钥加密的签名使用。
- 使用手机验证码或支付密码进行验证
设置公钥需要手机验证,填写手机接收到的验证码即可。
- 点击「支付宝密钥生成器」下载支付宝密钥生成工具
下图为 Mac 版的,Windows 版的类似。
- 打开下载的支付宝密钥生成工具、点击「生成密钥」
生成后,「生成 RSA 密钥」按钮变成了「重新生成」,位置是一样的。
- 支付宝新版密钥生成工具的界面。
我们只使用其中的「生成密钥」功能,密钥生成后,把其中的「应用私钥」复制到WooCommerce设置中,「应用公钥」复制到支付宝中,然后从支付宝中复制「支付宝公钥」到WooCommerce设置。
- 复制「步骤 6」生成的公钥、填写到「步骤 5」的文本框中、点击保存。
保存成功后,出现如下界面,点击「查看支付宝公钥」,看到的支付宝公钥就是我们插件中需要的支付宝公钥,复制粘贴到插件的「支付宝公钥」处。
- 点击「步骤 6 」中的「打开文件位置」按钮。
在出现的文件夹中找到「rsa_private_key.pem」或「应用私钥2048」这个文件,这个文件里面的内容就是我们需要的应用私钥,用记事本打开这个文件,复制里面的内容到插件的「应用私钥」处。
- 设置授权回调地址
点击下图中的「设置」链接,在弹出的窗口中输入插件设置页面的授权回调地址,格式如下:http://你的域名/wc-api/wprs-wc-alipay-notify/
- 最后,在插件页面点击「保存更改」按钮。
插件到这里就设置成功了,可以随便买个商品测试一下,如果没有意外,就可以使用支付宝进行支付了。
106 thoughts on “Wenprise Alipay Gateway ForWooCommerce支付宝支付网关插件设置教程”
一直遇到 “ 错误代码 insufficient-isv-permissions 错误原因: ISV权限不足,建议在开发者中心检查签约是否已经生效”
支付宝是申请的线下店铺当面付,且已成功上线,不知何故?
是要申请 手机网站支付 吗?如果是,则又会遇到icp证申请问题,我域名是godaddy申请的、空间是hostgater,是不是这些都不满足插件使用条件呢?谢谢
是需要申请「电脑网站支付」和「手机网站支付」这两个产品的,「当面付」产品目前无法使用。
申请支付宝是需要备案的否者你网站无法使用电脑网站或者手机网站支付的.,个人也是无法申请的。
支持申请的是个体工商户和企业……
线下支付跟线上支付是两种不同业务……
你插件有问题,没付款都直接跳到付款成功界面!
感谢反馈,有空我再测一下。
已修复,更新插件即可。
为什么订单支付成功后回调地址展示的是-1,而且订单状态也没有扭转
公钥私钥不匹配,核对一下。
楼主辛苦!请问可不可以加入一段防止浏览器自动检测弹窗拦截支付的代码啊?找了半天代码也没找到在哪里。这个在支付的时候太重要了。我是想在点击支付的时候先打开一个空白的新窗口,这种浏览器也会认为是用户点击行为而不会拦截。网上很多例子是直接给新窗口的location.href设置为新url,但是在需要表单form提交的情况下不行。那么我的思路就是获取新窗口,然后给空白的新窗口innerHTML设置为支付宝返回的表单内容,然后在空白新窗口自身打开新页面,这样也可以解决此问题。因为支付宝三方接口返回的form表单默认就是从自身页面打开的,所以该方法应该可行的。
正在想办法解决这个问题,你说的思路应该是可以的,不过在WooCommerce是实现起来有点复杂。最终肯定会找到一个合适的方法的,敬请期待。
支付宝支付的时候,弹出窗口被拦截的问题有解决方案吗?
目前没有太好的解决方案,可能的解决方案是加一个手动到支付宝支付的按钮,这样会多一步操作。如果你有好的建议,欢迎提出来。
哈哈哈,期待期待!还可以顺便修复下在手机上打开网站进行支付的时候,那个用户选择支付成功或支付失败的窗口超出手机屏幕的问题,只能关闭网站重新输入网址。
遇到个奇怪的问题求助,我把wordpress从一台Linux迁移到windows server上之后这个插件就不工作了,迁移的方式是直接复制整个wordpress目录到新服务器,数据库直接从原来的数据库导入的,请问大概会是什么原因导致这个插件无法正常工作了呢
检查一下是不是目录或权限问题。
请问不能用沙箱环境测试吗,我把代码量的网关都改成了沙箱网关,测试不通,问题非常多
这个应该是支付宝沙箱模式的问题,根据支付宝的文档,正式模式和沙箱模式的区别就是换了个网关 URL。建议直接使用正式模式测试。
这几天一直在测试这个插件,好多问题跟您反馈一下:
1. 手机端支付,某些浏览器比如UC,支付弹窗会完全不显示,也不提示被拦截,进后台看订单竟然是支付成功的状态;
2. 支付弹窗被拦截;
3. 有时支付成功后,从支付宝返回网站会出现“此站点正遇到技术问题”,有时又会正常怀疑跟订单号格式有关;
涉及到支付,可能一点bug也会很致命,希望再优化一下
1、会有弹窗的问题,未支付显示支付成功的问题应该已经解决过了,我有空再测试一下。
3、“此站点正遇到技术问题” 是 WordPress 的致命错误提示,可以把调试模式打开,看一下具体是什么错误。
最近在做项目,可能没有太多精力来测试这个插件,如果你能找到具体的错误,可以把错误信息发出来,我来针对性的进行测试。
如何升级或重新申请开放平台密钥
请参考阿里云官方文档。
支付完毕,跳转到/wc-api/wprs-wc-alipay-return/?charset=UTF-8&out_trade_no=8878&method=alipay.trade.page.pay.return&total_amount=0.10&sign=Jc%2BftvEhzF5qV3d6qFaPy3XWVXlqYaLTHr6%2FHNgZgYNz%2BwDipZLtE%2FjSntLfoyHqFzIZCbgU%2BORtx6xS7wXupJN3qdfr46o5gyAnI9mIciExDH%2Fe%2B7SqiRsXBWjsGoQsP2%2BXuPPiP8nvIyq5zaqNJYd8WDrJz8SqgZumm6X7xCsHWEK00KYhFNZmp3r%2B8mL3VOXnb34%2Blhl75fjywVz4HKG%2FVBFDOOHHiNawz2iIkxGeYu8uGZDnFGkksaXDpihYMhnUjOJ6JqPaHo06UNM2lfJMDxux025Y%2F1lDU%2FdpENrKjZe7hF%2FkPjimLZA6V9PS5G8hOfo2bEQUV0r%2FS4GNVA%3D%3D&trade_no=2019101722001482010568913515&auth_app_id=2019101268301743&version=1.0&app_id=2019101268301743&sign_type=RSA2&seller_id=2088002464307367×tamp=2019-10-17+18%3A26%3A58
最后提示The signature is not match
签名不匹配,检查一下签名设置。
我也是这个问题,也不知道在哪里检查签名设置
兄弟 我跟你一样的情况,你设置好了吗?
点击到支付宝付款,错误代码 invalid-signature 错误原因: 验签出错,sign值与sign_type参数指定的签名类型不一致:sign_type参数值为RSA2,您实际用的签名类型可能是RSA
正确设置了各项参数,点击结账按钮转到页面,出现了支付宝的图案,可是页面上面一直有个圈⭕在运行,点击不了下一步,这是什么原因?
打开 Chrome 调试功能,看是否有报错。
Bug:在支付宝APP内打开链接下单支付调不起支付接口
目前并不支持此功能。
你好,请问在点付款的时候,跳转到支付宝页面(正在跳转到支付宝,请在跳转后继续支付。),需要等待很长时间,这是什么原因?是主题慢么?
如果跳转需要很长时间,可能跟主题的性能有关系。
我的接口加签方式,不小心选了证书了,没法选择公钥,这样发现调用接口失败,请问有没有解决方案,谢谢
手机支付完成,出现,The signature is not match,是什么问题?
出现这个错误就是密钥配置错误。
如果让你帮我配置 多少钱?
加 QQ 或微信详细沟通。
提交订单一直卡在提交页面,另外/wc-api/wprs-wc-alipay-return/这个回调地址没在网站根目录下发现这个文件夹呢。
可以打开浏览器调试工具,看是否有报错。
为什么ios端网页无法跳转,Android端网页可以跳转但会提示拦截,电脑网页第一次可以正常跳转,但若未支付返回再继续提交就无法再次跳转支付,从订单中再点击付款也是无法跳转支付。?
求作者添加当面付!
已经在计划中了,后续的版本会添加。
作者你好,更新了最新版本之后,手机支付弹窗被国内浏览器拦截,不会被拉起的问题已经解决了,幸苦了。但是还是有个问题,试了手机网页支付和电脑网页支付,都提示The signature is not match。看了前面说是可能密钥配置错误,我问了支付宝的客服,说是支付宝公钥是不变的,而应用公钥也是按照上面教程生成的,重新配置了几次加签方式还是行不通,想问下可能是哪个密钥导致的问题呢。
你的教程和目前的支付宝平台的应用界面有出入,上传证书并获得支付宝公钥后,在后台设置完参数,前台提交订单,提示 如下,试过无数次都这样:调试错误,请回到请求来源地,重新发起请求。
——————————–
错误代码 invalid-signature 错误原因: 验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配,网关生成的验签字符串为:alipay_sdk=lokielse/omnipay-alipay&app_id=。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。;version=1.0
—————————————————
说明:如果您不是因为本接口集成调试而看见该错误提醒,请联系本次请求来源网站,本错误属于网站集成接口的错误。
唉。安装完以后,在哪里设置啊,没有后台界面和地址啊。。。。。。。。
支付成功,出现The signature is not match。应该不是密钥公钥填错,按照上面一步步配置的;而且,商户是成功收到款了(不是沙箱测试)。还有就是,在网站后台退款时提示:在尝试使用支付网关API进行退款时出现了错误。这个怎么解决?是不支持退款吗?
是的,我这里也有支付成功后提示The signature is not match这个问题。作者能否抽空看看?
插件没问题,提示这个信息的是密钥配置不正确,再检查一下吧。
* 由于支付宝在微信中被屏蔽掉了,支付宝支付在微信中自动隐藏
掌柜,如何取消插件自动隐藏
请问一下如何支持多次订阅(multiple subscriptions)和自动续费(Automatic Payment)功能啊
支持的插件列表:
https://docs.woocommerce.com/document/subscriptions/payment-gateways/#section-3
官方的文档:
https://docs.woocommerce.com/document/subscriptions/multiple-subscriptions/
抱歉,这个插件目前还不支持自动续费功能,如果需要,可以在取得支付宝自动扣费接口后联系我们定制开发。
您好!已经安装了这个插件,在电脑上付款正常,但手机上付款出现以下问题,希望能指导一下,谢谢!
手机上支付会打开支付宝成功付款,但在回调时出现以下错误提示:
WordPress错误
The signature not match
我也是这个问题,成功付款,但是回调时出现以下错误提示:The signature not match
很多用户都有这个问题,是不是插件的问题啊?
一样的问题。但付款都正常完成了
我也这个问题 明明秘钥都对的
这个不是证书版本的,有证书版本的么
目前的版本够用,暂无增加证书版本的计划。
晕死,我的是企业版本,必须用证书版本的
在chrome浏览器中可正常使用,换成其他浏览器,点击支付跳到跳转页面,提示“正在重定向到支付宝,请稍候…”,然后一直不动,是啥原因呢。
其他浏览器指的什么浏览器?什么操作系统?哪个版本?
当前操作系统为:win10专业版,系统版本:19041.264
其他浏览器为:
Firefox Browser DEVELOPER Edition 87.0b9(64位)
Microsoft Edge 44.19041.1.0
Microsoft EdgeHTML 18.19041
我现在正在尝试重装插件,重新配置,期待我的好消息。
没有退款网管呀
插件还在维护吗?有偿希望作者能帮忙配置,或者增加微信支付宝能一码支付,按月续费?期待作者回复,已经订阅评论了。
还在维护,最近比较忙,没抽出空来更新,如需帮忙配置可加QQ或微信联系。
作者你好,当账单地址和送货地址的必填字段校验结果false时,一样会跳转支付页面的,请问后续会维护吗?
{
“result”: “failure”,
“messages”: “”,
“refresh”: false,
“reload”: false
}
结账报这个错,是啥原因?
插件设置里有个调试模式,打开看有没有详细的错误信息。
提示信息为:Business Failed
没遇到过这个问题,建议检查一下公钥密钥是否输入错误,问题一般都出现在这里。
报错,出现 “The biz_content product_code parameter is required”
是为啥呢?
看起来是设置错误,可以购买我们的服务来帮你设置。
微信支付和支付宝一起,购买服务,要如何操作?
请加微信:iwillhappy1314 联系。
作者你好,为什么我们支付宝开放平台界面跟你截图的不一样呢?我们没有授权回调地址
可能是支付宝的界面有变化,具体情况可以咨询一下支付宝客服。
你好,作者,按照你这个流程步骤全部操作了,但是结账点击后进入不了界面怎么回事
我可以调用支付宝,支付成功后,总是返回一个界面 “the signature is not match”,这是什么问题?
这种情况大概率是私钥配置错误。
安卓可以正常结账,但是ios侧无论是Safari还是夸克都出现“处理结账时出错,请重试”了诶,咋回事
具体要看站点配置,请微信联系。
接入的当面付,手机端支付时出现The biz_content product_code parameter is required错误,这是什么错误?
还不更新当面付吗?
这个插件有问题,好多人都是付款成功后出现 The signature is not match,并不是秘钥问题
这个错误确实很常见,我开发这个插件的时候也需要过很多次,导致这个错误的原因可能有很多,根据网上的教程逐个排查一下吧。
手机端支付时出现The biz_content product_code parameter is required错误
电脑端无问题 当面付
请问应该如何解决这个错误
请在上班时间联系微信客服,帮你调试一下。
感谢你的回复 我通过修改代码已经解决 谢谢
支付成功了,不能退款,退款提示:在尝试使用支付网关API进行退款时出现了错误。
你好,
手机支付显示The biz content product_code
parameter is required
配置错误,参考教程检查一下配置,教程比较老了,不过需要设置的选项都是一样的。
可是电脑端是可以用的,就是手机端不行。显示这个错误。
付款时显示错误:Uncaught Error: Class ‘Wenprise\Alipay\WC_Logger’ not found in /usr/local/lighthouse/softwares/wordpress/wp-content/plugins/wenprise-alipay-checkout-for-woocommerce/src/PaymentGateway.php:805 Stack trace: #0
这个怎么解决
老是会出现 cURL error 56: OpenSSL SSL_read: Connection reset by peer, errno 104 (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)
不知如何解决
这种情况一般是服务器却什么组件或者网络问题。
请问有日志可以进一步查询吗
错误代码显示:
CURLE_RECV_ERROR (56)
Failure with receiving network data.
建议换个服务器试试吧
换过两台了,包括阿里云和腾讯云
请问咱插件不支持Ubuntu服务器吗
换服务器不行,就换个系统试试?
目前的情况:阿里云/腾讯云 + Ubuntu + 宝塔 + Nginx,无法使用支付宝插件
错误显示: Code:40002,SubCode:isv.invalid-signature’ ,我按照教程把所有参数都填了而且确认没问题的,还有其他解决办法吗?
这个是签名错误的代码,建议检查一下各种公钥私钥是否设置正确。
检查了没问题,因为涉及支付我用的是证书,地址路径也都填对了
如果实在搞不定,购买服务服务,我帮你设置好。https://www.wpzhiku.com/product/woocommerce-alipay-service/
报错::. Code:,SubCode:,什么也没有显示。浏览器调试工具显示错误,
checkout/:1 Unchecked runtime.lastError: The message port closed before a response was received.( 消息端口在收到响应前关闭。)Error: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received(错误: 监听器通过返回 true 表示异步响应,但消息通道在收到响应前关闭。)
看起来是服务器网络的问题。