成功申请微信支付功能后获取的关键配置项介绍(含商户ID等)

2025-07-06
来源:万象资讯

成功申请公众账号后获得

商户ID

成功申请微信支付功能之后通过官方发出的邮件获得

子商户ID

受理模式下必须要有的一个子商户ID

HTTP证书在服务器中的路径,用来加载证书用

在成功启用微信支付服务后,用户将收到官方发送的电子邮件,其中包含了“证书”。该证书对应的服务器配置项指的是“HTTP证书”的存放路径(例如,在示例中所需的证书文件位于“docs//”文件夹内的“.cert”文件)。

HTTP证书的密码,默认等于

成功申请微信支付功能之后通过官方发出的邮件获得

这些配置项主要用于在初始化SDK时进行设置。具体的初始化步骤可以参考上文所述内容。

Demo需要商户自己实现的

观察上图可知,桥接器主要负责生成在调用API时必须提交的各类参数,这些生成接口与商户的独立系统紧密相连。商户需依据自身业务系统的具体状况,依照API文档所规定的格式,生成相应的参数,以便在调用API时使用。

在这个例子中,设定了一个至关重要的接口,名为(),其主要功能是为调用API提供一份有效的“授权码”。

/** 获取授权码,该码由扫码终端设备从用户手机中读取,系用户支付时绑定银行卡的标识,其有效期限为短短一分钟。 * @return 授权码 */ public String getAuthCode(){

微信支付子商户ID获取_微信支付商户ID配置_微信扫码支付接口开发

鉴于authCode的有效期限仅为1分钟,因此在实际对SDK进行测试时,我们也可以手动输入微信刷卡界面下方的一维码中的数字序列。 return "120242957324236112"; }

这仅是初步的,用于手动输入授权码以测试API是否能够正常返回数据的操作。然而,在商户自行开发此接口时,必须结合自身系统进行定制化设计。比如,需要设置监听,以便捕捉到具备一维码或二维码扫描功能的外设,如“扫码枪”。一旦成功扫描到授权码,应将其记录,并激活提交支付的API调用。在调用过程中,应让桥接器中的特定接口获取刚扫描到的授权码,并将其作为参数传递给支付API。

被扫支付业务流程最佳实践

在整个被扫支付流程中,我们需要处理诸如“查询”与“撤销”等操作请求,为此,特此提供了一套建议的执行流程供大家参考,SDK的设计正是基于这一流程进行构建的。

从上图可见主要流程分为四种情况:

扣款即时完成:明确显示扣款操作已成功;扣款明确失败:需执行撤销程序,并反馈失败情况(建议提供详细失败原因,指导用户采取后续措施);密码输入要求:启动订单查询流程,若长时间查询无果,视作失败,随即进行撤销操作;扣款结果未知:首先进行订单查询,若经过一段时间仍未得到成功反馈,即视为失败,并直接执行撤销流程。

两个关键流程解释:

查询次数与间隔设定后,系统将按照用户定义的“查询次数”及“查询间隔”执行轮询操作。若查询次数用尽且未检测到“支付成功”状态,系统将自动启动“撤销流程”。在撤销流程中,系统依据预设的“查询间隔”持续调用撤销API。该API通过特定字段通知商户是否需要继续轮询。若字段值为“=Y”或显示“撤销结果成功”,则表明无需继续轮询,系统最终进入“支付失败”状态。

(以上最佳实践已经在SDK的里面封装好了)

支付业务逻辑分支处理最佳实践

里面的接口定义了支付流程中可能走到的8个分支,分别是:

定义一个名为ResultListener的公共接口,其中包含处理结果的监听器功能。 API反馈的ReturnCode存在异常,表明支付请求处理过程中出现了逻辑错误,建议您逐一检查所传递的参数是否合规,同时确认API是否能够正常接入。 当扫描支付响应数据因返回码错误而失败时,应调用此方法处理,参数为scanPayResData。 API反馈的ReturnCode显示为FAIL,表明支付API系统处理失败,此时需检查提交给API的数据是否符合规范和合法性要求。 当扫描支付结果数据通过返回码标识失败时,需执行相应的处理函数,该函数的参数为ScanPayResData类型的scanPayResData对象。 支付请求API反馈的数据签名验证未能通过,这表明数据可能遭到了篡改。 当签名验证失败时,应调用此方法处理,并传入扫描支付响应数据对象。

微信扫码支付接口开发_微信支付商户ID配置_微信支付子商户ID获取

顾客所使用的支付二维码已失效,请收银人员重新扫描用户微信“支付”功能中的新二维码。 当授权码失效时,需调用该函数处理,该函数接收扫描支付响应数据作为参数。 授权码无效,请您更新一维码或二维码,随后再次进行扫码支付操作。 当认证码无效时,执行onFail操作,接收ScanPayResData类型的scanPayResData参数。 //用户余额不足,换其他卡支付或是用现金支付 当资金不足导致失败时,需调用onFailByMoneyNotEnough方法处理,并传入ScanPayResData类型的scanPayResData参数。 //支付失败 当扫描支付结果数据发生失败时,需调用onFail方法处理,并传入相应的ScanPayResData对象。 //支付成功 在操作成功后,执行函数以处理扫描支付结果数据,参数为scanPayResData。 }

Demo里面用到的就是实现了以上这8个接口。

这里有几点处理建议:

ror、il以及这三种问题均涉及程序逻辑,建议商家自行进行日志跟踪,一旦发现异常应迅速指派工程师进行故障排查;而re、lid、gh这类问题则与用户自身相关,商家应向用户展示详细的错误信息,并指导用户如何进行后续操作。具体错误信息可从点括号中获取。为了实现商户系统接入SDK的最佳操作,应创建一个新的订单,输入订单金额,激活扫码枪功能,让用户进行扫码。扫码器将获取授权码,并将其反馈以提交支付请求。

SDK处理API返回的数据

为确保整体系统的安全,商户系统部署需遵循最佳实践,因此支付请求应由商户后台系统主动发起;而商户系统与SDK的对接,关键在于实现其内部的接口功能。

在本demo中,我们提供了单元测试用例,商户开发者可以参照此示例进行参考。

高级自定义:1)自定义查询流程和撤销流程

商家可依据自身具体需求,自行调整“查询流程”中的“查询次数”与“查询间隔”;同样,“撤销流程”的“查询间隔”也可进行相应配置;比如:

//自定义调用查询接口的间隔 scanPayBusiness调用了设置等待时间的方法,该时间设为3000毫秒,以便在支付查询服务被调用之前。

微信扫码支付接口开发_微信支付子商户ID获取_微信支付商户ID配置

//自定义调用查询接口的次数 scanPayBusiness调用了支付查询循环,并设置了调用次数为1。 //自定义调用撤销接口的间隔 scanPayBusiness赋值了等待时间,该时间设为2000毫秒,以便在服务调用反转前启动。

高级自定义:2)使用自己的请求器

某些商家或许已在自系统中部署了高度封装的请求器,若他们希望SDK的服务请求均通过这些请求器统一发起,本处提供了一项配置选项,用以实现此功能。

//自定义底层的HttpsRequest 配置对象设定了HTTPS请求的类名为“com.tencent.httpsrequest.HttpsRequestForTest”。

请注意:自行开发的请求器务必实现该接口,并可以参考SDK中提供的实现方式。

调用被扫支付API的协议规则

序号||

:-:|-|-

1|传输方式|为保证交易安全性,采用传输

2|提交方式|采用POST方法提交

数据提交与输出均须采用XML格式,其中根元素的名称为“xml”。

4|字符编码|统一采用UTF-8字符编码

5|签名算法|MD5

在数据请求与接收过程中,必须对签名进行验证,这一验证过程在SDK中已预先进行了封装处理。

7|证书要求|调用申请退款、撤销订单接口需要商户证书

在进行判断时,首要步骤是核对协议字段所提供的信息,紧接着评估业务层面的反馈,最终确认交易的具体状态。

进行支付时,若交易金额超过300元,必须通过验证支付密码;每个用户账户在一天内最多可享受10次免密支付,一旦超过此限额,便需输入支付密码;若微信支付系统检测到用户的支付行为存在异常,即便交易符合免密条件,同样会要求用户进行密码验证。相关信息可参考相关资料。

分享