电话+V:159999-78052,欢迎咨询小程序需要支付接口认证费怎么办,[小程序设计与开发],[小程序投流与推广],[小程序后台搭建],[小程序整套源码打包],[为个体及小微企业助力],[电商新零售模式],[小程序运营推广及维护]
是腾讯平台的缴费吗?
1、腾讯平台的小程序不要急着去认证,先去认证公众号(服务号),然后在调用公众号资质,去免费认证小程序。
小程序认证一般需要支付一定的费用。
小程序认证是指通过微信公众平台进行的一种认证方式,用于确认小程序的真实性和合法性。在进行小程序认证时,一般需要支付一定的费用,具体金额根据微信公众平台的规定而定。目前,小程序认证的费用为300元/年,这是微信公众平台官方收取的费用,用于维护小程序生态系统和提供相关的技术支持。
小程序认证的费用可以通过微信支付或银行转账等方式进行支付。在进行支付前,需要先在微信公众平台注册账号,并完成相关的认证流程。在提交认证申请时,需要提供一些必要的资料,如营业执照、组织机构代码证等证明文件。这些资料需要经过微信公众平台的审核,审核通过后才可以进行小程序认证费用的支付。
值得注意的是,小程序认证费用是每年都需要支付的,如果未能及时支付,可能会导致小程序无法正常使用。同时,在认证过程中还需要遵守微信公众平台的相关规定和条款,否则可能会导致认证失败或被取消认证资格。
小程序不能通过拉起H5页面做jsapi支付,小程序内只能使用小程序支付
步骤一:如图1,用户通过分享或扫描二维码进入商户小程序,用户选择购买,完成选购流程。
步骤二:如图3,调起微信支付控件,用户开始输入支付密码。
图1打开商户小程序图2请求微信支付图3调起微信支付控件
步骤三:如图4,密码验证通过,支付成功。商户后台得到支付成功的通知。
步骤四:如图5,返回商户小程序,显示购买成功。
步骤五:如图6,微信支付公众号下发支付凭证。
图4请求支付成功图5返回商户小程序图6下发支付凭证
了解完微信支付不同模式的基础账号关系与使用后,针对第三方模式进行枚举说明,以小程序举例。
小程序的开发:第三方服务商帮商户开发小程序,有三种业务场景:
无论哪种模式开发的小程序,在使用面对用户的微信支付能力时,都以该小程序AppID为主体ID来调用微信开放平台提供的API。
以在某小程序中发起微信支付为例,分后台下单和前端js拉起收银台两部分。
其中,后台下单对应微信支付的三大类开放模式,前端js拉起收银台需通过该小程序的AppID,且该AppID参与后台下单。即,根据不同的开放模式和业务场景枚举,第三方开发小程序使用微信支付时,可分为9种[3*3]不同的组合模式,结合实际业务诉求选择对应的组合模式进行开发。
注意
以上[3*3]共计9种组合,均能成功接入微信支付。但红色连接线为二清模式,政策上不允许采用该模式。有需求的第三方开发者可通过银行渠道商模式接入。
接入前准备更新时间:2023.08.16
在正式接入微信支付小程序支付服务前,你需要进行以下准备步骤:
商户需要判断自己公司注册区域适用的接入模式和自身实际情况,申请成为普通商户或普通服务商:
具体接入模式介绍请参考接入模式文档,并按照参考文档完成相应模式的接入。
请根据自身接入模式分别参考微信支付接入准备-普通商户或微信支付接入准备-普通服务商中的参数申请-配置APIkey-下载并配置商户证书三个步骤申请接入参数。
点击开通按钮后,有2种方式可以获取微信支付能力,新申请微信支付商户号或绑定一个已有的微信支付商户号,请根据你的业务需要和具体情况选择,只能二选一。
开发指引为了在保证支付安全的前提下,带给商户简单、一致且易用的开发体验,我们推出了全新的微信支付APIv3接口。该版本API的具体规则请参考APIv3接口规则。
为了帮助开发者调用开放接口,我们提供了JAVA、PHP、GO三种语言版本的开发库,封装了签名生成、签名验证、敏感信息加/解密、媒体文件上传等基础功能(更多语言版本的开发库将在近期陆续提供)。
测试步骤:
1、根据自身开发语言,选择对应的开发库并构建项目,具体配置请参考下面链接的详细说明:
更多资源可前往微信支付开发者社区(opensnewwindow)搜索查看。
2、创建加载商户私钥、加载平台证书、初始化httpClient的通用方法。
示例代码
javaphp1@Before2publicvoidsetup()throwsIOException{3//加载商户私钥(privateKey:私钥字符串)4PrivateKeymerchantPrivateKey=PemUtil5.loadPrivateKey(newByteArrayInputStream(privateKey.getBytes("utf-8")));67//加载平台证书(mchId:商户号,mchSerialNo:商户证书序列号,apiV3Key:V3密钥)8AutoUpdateCertificatesVerifierverifier=newAutoUpdateCertificatesVerifier(9newWechatPay2Credentials(mchId,newPrivateKeySigner(mchSerialNo,merchantPrivateKey)),apiV3Key.getBytes("utf-8"));1011//初始化httpClient12httpClient=WechatPayHttpClientBuilder.create()13.withMerchant(mchId,mchSerialNo,merchantPrivateKey)14.withValidator(newWechatPay2Validator(verifier)).build();15}1617@After18publicvoidafter()throwsIOException{19httpClient.close();20}3、基于接口的示例代码,替换请求参数后可发起测试。
说明:
注意
重点步骤说明:
步骤4:用户下单发起支付,商户可通过JSAPI下单创建支付订单。
步骤9:商户小程序内使用小程序调起支付API(wx.requestPayment)发起微信支付,详见小程序API文档(opensnewwindow)。
步骤16:用户支付成功后,商户可接收到微信支付支付结果通知支付通知API。
步骤21:商户在没有接收到微信支付结果通知的情况下需要主动调用查询订单API查询支付结果。
本章节展示了如何使用微信支付服务端SDK快速接入小程序支付产品,完成与微信支付对接的部分。
注意
步骤说明:
用户通过商户小程序进入商户网页,当用户选择相关商品购买时,商户系统先调用该接口在微信支付服务后台生成预支付交易单。
示例代码
javaphp1publicvoidCreateOrder()throwsException{2//请求URL3HttpPosthttpPost=newHttpPost("https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi");45//请求body参数6Stringreqdata="{"7+""amount":{"8+""total":100,"9+""currency":"CNY""10+"},"11+""mchid":"1900006891","12+""description":"Image形象店-深圳腾大-QQ公仔","13+""notify_url":"https://www.weixin.qq.com/wxpay/pay.php","14+""payer":{"15+""openid":"o4GgauE1lgaPsLabrYvqhVg7O8yA""+"},"16+""out_trade_no":"1217752501201407033233388881","17+""goods_tag":"WXG","18+""appid":"wxdace645e0bc2c424""+"}";19StringEntityentity=newStringEntity(reqdata,"utf-8");20entity.setContentType("application/json");21httpPost.setEntity(entity);22httpPost.setHeader("Accept","application/json");2324//完成签名并执行请求25CloseableHttpResponseresponse=httpClient.execute(httpPost);26try{27intstatusCode=response.getStatusLine().getStatusCode();28if(statusCode==200){29System.out.println("success,returnbody="+EntityUtils.toString(response.getEntity()));30}elseif(statusCode==204){31System.out.println("success");32}else{33System.out.println("failed,respcode="+statusCode+",returnbody="+EntityUtils.toString(response.getEntity()));34thrownewIOException("requestfailed");35}36}finally{37response.close();38httpClient.close();39}40}重要入参说明:
步骤说明:通过JSAPI下单API成功获取预支付交易会话标识(prepay_id)后,需要通过JSAPI调起支付API来调起微信支付收银台。
注意
示例代码
1wx.requestPayment(2{3"timeStamp":"1414561699",4"nonceStr":"5K8264ILTKCH16CQ2502SI8ZNMTM67VS",5"package":"prepay_id=wx201410272009395522657a690389285100",6"signType":"RSA",7"paySign":"oR9d8PuhnIc+YZ8cBHFCwfgpaK9gd7vaRvkYD7rthRAZ\/X+QBhcCYL21N7cHCTUxbQ+EAt6Uy+lwSN22f5YZvI45MLko8Pfso0jm46v5hqcVwrk6uddkGuT+Cdvu4WBqDzaDjnNa5UK3GfE1Wfl2gHxIIY5lLdUgWFts17D4WuolLLkiFZV+JSHMvH7eaLdT9N5GBovBwu5yYKUR7skR8Fu+LozcSqQixnlEZUfyE55feLOQTUYzLmR9pNtPbPsu6WVhbNHMS3Ss2+AehHvz+n64GDmXxbX++IOBvm2olHu3PsOUGRwhudhVf7UcGcunXt8cqNjKNqZLhLw4jq\/xDg==",8"success":function(res){},9"fail":function(res){},10"complete":function(res){}11})重要入参说明:
paySign生成规则、响应详情及错误码请参见小程序调起支付接口文档。
步骤说明:当用户完成支付,微信会把相关支付结果将通过异步回调的方式通知商户,商户需要接收处理,并按文档规范返回应答
注意
特别提醒:商户系统对于开启结果通知的内容一定要做签名验证,并校验通知的信息是否与商户侧的信息一致,防止数据泄露导致出现“假通知”,造成资金损失。
更多参数、响应详情及错误码请参见支付结果通知接口文档。
步骤说明:当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知时,商户可通过查询订单接口核实订单支付状态。
注意
需要调用查询接口的情况:
示例代码(通过微信订单号查询):
示例代码
javaphp1publicvoidQueryOrder()throwsException{23//请求URL4URIBuilderuriBuilder=newURIBuilder("https://api.mch.weixin.qq.com/v3/pay/transactions/id/4200000745202011093730578574");5uriBuilder.setParameter("mchid",mchId);67//完成签名并执行请求8HttpGethttpGet=newHttpGet(uriBuilder.build());9httpGet.addHeader("Accept","application/json");10CloseableHttpResponseresponse=httpClient.execute(httpGet);1112try{13intstatusCode=response.getStatusLine().getStatusCode();14if(statusCode==200){15System.out.println("success,returnbody="+EntityUtils.toString(response.getEntity()));16}elseif(statusCode==204){17System.out.println("success");18}else{19System.out.println("failed,respcode="+statusCode+",returnbody="+EntityUtils.toString(response.getEntity()));20thrownewIOException("requestfailed");21}22}finally{23response.close();24}25}更多参数、响应详情及错误码请参见微信支付订单号/商户订单号接口文档。
步骤说明:当商户订单支付失败需要生成新单号重新发起支付,要对原订单号调用关单,避免重复支付;系统下单后,用户支付超时,系统退出不再受理,避免用户继续,请调用关单接口。
注意
示例代码
javaphp1publicvoidCloseOrder()throwsException{23//请求URL4HttpPosthttpPost=newHttpPost("https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/sdkphp12345678920201028112429/close");5//请求body参数6Stringreqdata="{"mchid":""+mchId+""}";78StringEntityentity=newStringEntity(reqdata,"utf-8");9entity.setContentType("application/json");10httpPost.setEntity(entity);11httpPost.setHeader("Accept","application/json");1213//完成签名并执行请求14CloseableHttpResponseresponse=httpClient.execute(httpPost);15try{16intstatusCode=response.getStatusLine().getStatusCode();17if(statusCode==200){18System.out.println("success,returnbody="+EntityUtils.toString(response.getEntity()));19}elseif(statusCode==204){20System.out.println("success");21}else{22System.out.println("failed,respcode="+statusCode+",returnbody="+EntityUtils.toString(response.getEntity()));23thrownewIOException("requestfailed");24}25}finally{26response.close();27}28}更多参数、响应详情及错误码请参见关闭订单接口文档
步骤说明:微信支付按天提供交易账单文件,商户可以通过该接口获取账单文件的下载地址。
示例代码
javaphp1publicvoidTradeBill()throwsException{23//请求URL4URIBuilderuriBuilder=newURIBuilder("https://api.mch.weixin.qq.com/v3/bill/tradebill");5uriBuilder.setParameter("bill_date","2020-11-09");6uriBuilder.setParameter("bill_type","ALL");78//完成签名并执行请求9HttpGethttpGet=newHttpGet(uriBuilder.build());10httpGet.addHeader("Accept","application/json");11CloseableHttpResponseresponse=httpClient.execute(httpGet);1213try{14intstatusCode=response.getStatusLine().getStatusCode();15if(statusCode==200){16System.out.println("success,returnbody="+EntityUtils.toString(response.getEntity()));17}elseif(statusCode==204){18System.out.println("success");19}else{20System.out.println("failed,respcode="+statusCode+",returnbody="+EntityUtils.toString(response.getEntity()));21thrownewIOException("requestfailed");22}23}finally{24response.close();25}26}更多参数、响应详情及错误码请参见申请交易账单接口文档。
步骤说明:申请交易账单接口获取到账单下载地址(download_url)后,再通过该接口获取到对应的账单文件,文件内包含交易相关的金额、时间、营销等信息,供商户核对订单、退款、银行到账等情况。
注意
示例代码
1publicvoidDownloadUrl(Stringdownload_url)throwsException{2PrivateKeymerchantPrivateKey=PemUtil.loadPrivateKey(newByteArrayInputStream(privateKey.getBytes("utf-8")));34//初始化httpClient5//该接口无需进行签名验证、通过withValidator((response)->true)实现6httpClient=WechatPayHttpClientBuilder.create().withMerchant(mchId,mchSerialNo,merchantPrivateKey).withValidator((response)->true).build();78//请求URL9//账单文件的下载地址的有效时间为30s10URIBuilderuriBuilder=newURIBuilder(download_url);11HttpGethttpGet=newHttpGet(uriBuilder.build());12httpGet.addHeader("Accept","application/json");1314//执行请求15CloseableHttpResponseresponse=httpClient.execute(httpGet);16try{17intstatusCode=response.getStatusLine().getStatusCode();18if(statusCode==200){19System.out.println("success,returnbody="+EntityUtils.toString(response.getEntity()));20}elseif(statusCode==204){21System.out.println("success");22}else{23System.out.println("failed,respcode="+statusCode+",returnbody="+EntityUtils.toString(response.getEntity()));24thrownewIOException("requestfailed");25}26}finally{27response.close();28}29}30```3132```php33try{34$resp=$client->request(35'GET',36'https://api.mch.weixin.qq.com/v3/billdownload/file?token=xx',//请求URL37[38'headers'=>['Accept'=>'application/json']39]40);41$statusCode=$resp->getStatusCode();42if($statusCode==200){//处理成功43echo"success,returnbody=".$resp->getBody()->getContents()."";44}elseif($statusCode==204){//处理成功,无返回Body45echo"success";46}47}catch(RequestException$e){48//进行错误处理49echo$e->getMessage()."";50if($e->hasResponse()){51echo"failed,respcode=".$e->getResponse()->getStatusCode()."returnbody=".$e->getResponse()->getBody()."";52}53return;54}更多参数、响应详情及错误码请参见下载账单接口文档。
A:在小程序内通过外部H5页面调起支付报错。
A:请按以下几点进行排查:
A:可通过以下两种方式开通:
功能列表描述小程序下单通过本接口提交微信支付小程序支付订单。小程序调起支付通过小程序下单接口获取到发起支付的必要参数prepay_id,可以按照接口定义中的规则,调起小程序支付。支付通知微信支付通过支付通知接口将用户支付成功消息通知给商户。微信支付订单号查询订单通过此接口查询订单状态。商户订单号查询订单通过此接口查询订单状态。关闭订单通过此接口关闭待支付订单。退款申请商户可以通过该接口将支付金额退还给买家。查询单笔退款(通过商户退款单号)提交退款申请后,通过调用该接口查询退款状态。退款结果通知微信支付通过退款通知接口将用户退款成功消息通知给商户。申请资金账单商户可以通过该接口获取资金账单文件的下载地址。申请交易账单商户可以通过该接口获取交易账单文件的下载地址。下载交易/资金账单通过申请交易/资金账单获取到download_url在该接口获取到对应的账单。
电话+V: 159999-78052
专注于小程序推广配套流程服务方案。为企业及个人客户提供了高性价比的运营方案,解决小微企业和个体拓展客户的问题