前排:本篇文章将会主要介绍如何开通 免充值立减与折扣功能,具体使用请看微信支付-免充值立减与折扣(下篇)。
一 前言
项目需求:使用XX银行卡支付可享受满XX减XX优惠。
一开始看到这个需求,觉得一脸懵逼,不可思议,首先想到的问题是支付控件是微信的,我们只能在支付完成后回调接口知道用户的支付方式(使用零钱或者某某银行卡),支付方式不可能在用户发起支付时获取到。难不成要在用户支付后进行退款操作?想一想就觉得好傻逼(这个方法pass)。接着便想微信支付肯定不会这么傻,肯定有接口可以在支付时知道支付方式或者更方便的方法。好在最终,在商户平台发现了解决方式、本文的主题--免充值立减与折扣。
二 准备
2.1 必要前提
你要有微信公众号支付/小程序支付/H5支付的开发经验(本文以公众号支付为例),否则先看我的上一篇文章 移动支付--微信公众号支付开发;
2.2 开发前需读这几篇微信支付文档
2)微信公众号支付开发文档(包括查询订单、申请退款、查询退款、下载对账单等接口)
三 过程
1. 查看免充值功能接口升级验收进度
步骤 :打开 验收进度 - 输入微信商户号;
如果页面提示 已完成接口升级,请忽略以下直接看第二步。
对于没有完成接口升级的商户,需要至少完成以下一个用例组合1001+1002+1005;1003+1004+1005,微信提供了接口升级测试用例。
调用用例之前需先获取沙箱秘钥。接口URL: https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey。
注:以下内容摘自测试用例:
1.1【 1001-可选用例-刷卡正常支付】
1.1.1 用例简述
订单金额 5.01 元,其中 0.01 元使用免充值券,实际支付 5.00 元。验证商户具备正确解析及识别免充值代金券字段的能力。
1.1.2 测试步骤
(1)手机客户端进入“微信->我->钱包->付款”获取支付条码;
(2)在收银台输入订单金额为 5.01 元,扫码枪扫描上述条码(此操作可选,若扫码时出现二维码失效等提示,可忽略提示,不影响测试结果),完成支付(或直接组包调用刷卡 api);
(3)根据商户内部单号(out_trade_no),调查单 api(https://api.mch.weixin.qq.com/sandboxnew/pay/orderquery)查询订单状态,与商户自有订单的关键信息进行核对。
1.2 【 1002-可选用例-刷卡支付退款】
1.2.1 用例简述
订单金额 5.02 元,使用零钱+0.01 元免充值代金劵,实际支付 5.01 元,退款查询升级。
1.2.2 测试步骤
(1)使用刷卡支付,进行 5.02 元的订单支付;
(2)根据商户内部单号(out_trade_no),调查单 api(https://api.mch.weixin.qq.com/sandboxnew/pay/orderquery)查询订单状态;
(3)调用退款 api (https://api.mch.weixin.qq.com/sandboxnew/secapi/pay/refund)进行退款;
(4)调用退款查询 api (https://api.mch.weixin.qq.com/sandboxnew/pay/refundquery)查询退款结果。
1.3【 1003-可选用例-公众号/APP/扫码正常支付】
1.3.1 用例简述
订单金额 5.51 元,其中 0.01 元使用免充值券,实际支付 5.50 元。
验正常支付流程,商户使用免充值代金券支付。
1.3.2 测试步骤
(1)用客户端扫码,选择商品下单(此操作可选,若扫码时出现二维码失效过期等提示,可忽略提示,不影响测试结果,支付时出现收银台 total_fee 错误,是因为微信支付真实环境里不存在此笔沙箱订单,可忽略此错误),调起微信支付交易确认页,调下单 api(https://api.mch.weixin.qq.com/sandboxnew/pay/unifiedorder)
(2)等待 5 秒,完成支付;
(3)调用查单 api(https://api.mch.weixin.qq.com/sandboxnew/pay/orderquery)查询订单状态,与商户自有订单的关键信息进行核对。
1.4 【 1004-可选用例-公众号/APP/扫码支付退款】
1.4.1 用例简述
订单金额 5.52 元,其中 0.01 元使用免充值券,实际支付 5.51 元。
1.4.2 测试步骤
(1)进行 5.52 元的订单支付;
(2)根据商户内部单号(out_trade_no),调查单 api
(https://api.mch.weixin.qq.com/sandboxnew/pay/orderquery)进行查询,与商户自有订单的关键信息进行核对;
(3)调用退款 api (https://api.mch.weixin.qq.com/sandboxnew/secapi/pay/refund)进行退款;
(4)调用退款查询 api (https://api.mch.weixin.qq.com/sandboxnew/pay/refundquery)查询退款结果
1.5【 1005-必选用例-交易对账单下载】
1.5.1 用例简述
使用了免充值券的订单,免充值券部分的金额不计入结算金额。验证商户对账能正确理解到这一点,对账无误。
1.5.2 测试步骤
(1)调用对账单下载接口,下载对账单,其中下载对账单总单时 bill_type=ALL,下载对账单交易成功单时 bill_type=SUCCESS,下载对账单退款单时 bill_type=REFUND,链接样例:https://api.mch.weixin.qq.com/sandboxnew/pay/downloadbill;
(2)检查账单返回文件字段,结算金额=订单总金额-免充值券金额。
2. 微信商户平台开通免充值立减与折扣功能。
步骤 :微信商户平台首页 - 产品中心 - 产品大全 - 我的产品 - 找到免充值与折扣立减产品 - 点击开通。
四 注意
1)沙箱环境 调用成功 统一下单 接口,前端无须进行支付操作,微信会直接进行 支付结果通知。