WeixinPay for WooCommerce

WexinPay for WooCommerce / WeChat payment gateway for WooCommerce (WooCommerce 微信支付)是一个为 WooCommerce 添加一个 微信支付网关(JSAPI接口)的 WordPress 插件。

微信支付的帐号接口体系

微信支付

 

上图来自微信支付。

本插件自身支持公众号支付,也就是微信支付的JSAPI接口,但是:

可通过相关插件 WeixinPay for WooCommerce: APP 支持微信支付的APP支付(自制APP内使用微信支付的服务端,和 WooCommerce APP Helper 一起工作 );

可通过相关插件 WeixinPay for WooCommerce: Native  支持扫码支付。

 

唠叨

独立平台能最大可能的保护你的业务数据的保密性,如果你不在意这些,有赞、微店等是不错的选择。

环境需求

请确保你的服务器支持curl; 提示:尽量不要使用Windows操作系统的服务器,尽量不要使用腾讯云。

如需使用在网站后台给顾客退款的功能,请确保你的服务器的libcurl 版本不低于7.20.1。

版本记录

  1. 0.9.0 : 初始发布;
  2. 0.9.1 : 代码优化;
  3. 0.9.2 : bug修复:对WC通用功能的动作做严格限制;
  4. 0.9.3 : bug修复:解决了与下面这种情况的冲突:WC未启用“游客支付”,但是允许访客在结算页面注册并自动登录;
  5. 0.9.4 : bug修复:解决了反复操作一个订单(反复操作示例:processing->refunded->processing)时,可能出现的错误提示弹窗(弹窗内容部分的文本:订单查询接口中,out_trade_no、transaction_id至少填一个! );
  6. 0.9.5 :  性能优化,将默认的同步返回链接修改为view-order页面,增加语言包支持;
  7. 0.9.6 :添修复了微信支付SDK中潜在的问题,性能提升;
  8. 0.9.7 :支持共享地址接口,支持扩展插件 WeixinPay for WooCommerce:APP;

在线更新功能由于内网受限,无法保证可用性,所以,未获取最新版本的顾客请发邮件到我的邮箱。

主要功能

支持游客支付(需要在WooCommerce->设置->结算页面允许游客支付);

支持微信支付的JSAPI接口;

在 微信 APP 内屏蔽掉可能存在的 Alipay for WooCommerce 以及 AlipayWAP for WooCommerce; 支持在WooCommerce后台进行退款操作;

据微信异步通知响应订单状态;

据微信支付的支付成功异步通知同步查询订单支付状态,并显示在WooCommerce后台的订单详情页面;

支持管理员在WooCommerce->订单->某个订单详情页面的退款操作自v0.9.7开始已经不支持退款操作);

支持在结算页面,为通过微信访问的用户自动生成一个账户并自动登录(自v0.9.7开始支持此动作);

支持共享地址接口,详情见这里自v0.9.7开始支持此动作);

支持库存管理(支付完成后,订单为处理中的状态,减少库存,已退款的订单增加订单中商品的相应库存);

支持多币种 (鸡肋功能,已经去除:使用微信的大多有中国国内的银行账号,否则无法完成支付,所以,去除了);

 

支持扩展插件 WeixinPay for WooCommerce:APP ;

 

测试截图

以下测试截图的环境为: CentOS + Nginx/Apache + PHP 5.3 + WordPress 最新版 + WooCommerce 最新版。 主题采用的是 WordPress 当前的默认主题 : twentyfifteen 。 以下仅为部分截图( 截图时间并非同一时间,也可能并非同一订单,下述截图中涉及的人名均为假名,如有雷同,纯属偶然):

0. 后台设置: WexinPay for WooCommerce 设置 如果当前的 WooCommerce 主币种不是人民币,还请设置 WooCommerce 当前的主货币兑换人民币的汇率,比如:当前主币种为美元,汇率可设置为 6.1: WeChat payment gatewary for WooCommerce 设置 在微信支付网站,应将支付授权目录设置为:

如果你的微信认证服务号的微信支付是开发模式,应将你自己的微信号添加到白名单才可测试,并且支付授权目录不能为前面的红色字体所示链接,测试目录填写为前面红色字体所示链接。 此外,你的key文件(apiclient_key.pem 和 apiclient_cert.pem)应该放在 /wp-content/plugins/weixinpay-for-woocommerce/lib/cacert 目录下。

1. 在结算页面选用微信支付网关: WooCommerce 采用微信网关支付 2. 从站内或者微信服务器获取当前已在网站登录的顾客的openid,并准备数据包,获取prepayID,然后发起支付: WooCommerfce 微信支付 3. 用户在微信绑定信用卡/借记卡,已经绑定过的输入密码直接支付: WooCommerce 微信支付 中间页 WooCommerce 微信支付 在上图中,由于微信是以商品作为交易对象的,而WooCommerce是以订单作为交易对象的,所以,只能讲订单名称以及订单号(上例中是2617)作为商品名称。

4. 同步返回(下例中同步返回到网站前台->我的账户页面,显示订单列表): WooCommerce 微信支付网关 5. 异步验证,这个是采用经过验证的微信返回数据来验证支付有效性并改变订单状态为processing(处理中)的: WooCommerce 微信支付 异步验证 在网站后台该订单的详情页面,可见向微信主动查询(仅在订单状态为processing时做一次性动作)该订单的结果: WeChat payment gateway for WooCommerce自v0.9.7开始已经不支持退款操作 

 在退款后,这里显示: WooCommerce 微信支付 主动查询 退款操作演示见:https://suoling.net/wexinpay-for-woocommerce/ 支持在微信支付成功以及微信支付退款时的库存管理(WooCommerce 自身是不支持在退货时增加订单中商品的相应库存的): WooCommerce 微信支付 库存管理

调试说明

key文件缺失 请将微信支付的"apiclient_key.pem" 和 "apiclient_cert.pem" 文件放到插件主目录下的/lib/cacert下(并确保这两个文件具有读权限)。

结论

这算是对去年做了一半的 WeChat payment gateway for WooCommerce 的完成吧。 后续将会考虑下微信一键登录/共享收货地址功能,优化下订单数据下发给顾客的体验。

 购买


error: 错误信息!