首页 电商 正文

微信公众号优质文章内容如何定位? 微信支付之扫码、APP、小程序支付接入详解

2024-03-21 19:32
admin

拓途小编作为自媒体作者一个重要的环节就是对自己产生的内容进行内容定位,公众号文章的内容要有精准的定位才能带来持续的关注,那怎么才能做好内容定位呢?

一个优秀的公众号应该持续长生有价值的内容,有价值的内容是提供给受众的养分,也是读者一直关注公众号的原因。

一、公众号内容主要包括如下两类

1.垂直行业内容

垂直行业内容是指对一个领域内容有帮助的内容,可能是技能培训、使用方法或垂直领域的资讯。这类内容的读者是希望通过公众号阅读得到有益于提升相关的信息。每一个行业都有自己的知识门槛,如果粉丝能够通过阅读公众号获得这些内容就会成为忠实的粉丝。同时一个优秀的行业资讯号也能够带来从业者的关注,信息社会大家对信息的及时性要求很高。以上的所有内容是对读者自我提升时间的占用。

2.泛娱乐内容

泛娱乐内容是对用户业余时间的占据,这个社会压力与日俱增,大家有时候需要对自己的情绪进行示放或单纯的进行时间消磨。这类公众号主要提供的是娱乐信息、体育新闻或者情感文章。其中用户对于情感文章的阅读会产生同理心,公众号文章可能为代替读者发声,这样二次传播率就会更高。

二、怎么做?

既然我们了解了用户的需求,那我们提供对应的价值给读者就可以了。

1.定位与坚守公众号内容类型

定位好自己的公众号内容,并且坚持内容方向是一个重要的方法。一个优秀持久的方向是粉丝关注的主要理由。对于情感类公众号去写干货并不会带来权威感,而一个定位于干货分享的公众号就不适合太多的情绪宣泄类文章。

2.做更精准专业的内容

贪大求全并不适合公众号这种表现形式,公众号文章由于发文的限制并不能做到类似于其他网站或自媒体那样的灵活,如何把定位好的的内容持续做精更为重要。

举个例子,如果是做垂直领域的公众号内容,那彩妆就是彩妆,化工就是化工,要让粉丝第一时间的第一感觉就是这个领域的专家,并且能够得到权威有用的信息。

而如果是做情感类文章,要紧贴自己的用户情感表诉,一个公众号很难面面俱到的讨好各个族群,如果想同时讨好两种对立族群往往会两方都讨不到好处,具体一些就是如果写90后就写90后,不要去写60后,同时严格把握用户心理,不要对抗用户情感。

3.人格化公众号文章形象

一个优秀的公众号需要一定的人格化操作,人格化能够快速区隔其他公众号的方法,增支付之扫码、APP、小程序支付接入详解

做电商平台的小伙伴都知道,支付服务是必不可少的一部分,今天我们开始就说说支付服务的接入及实现。目前在国内,几乎90%中小公司的支付系统都离不开微信支付和支付宝支付。那么大家要思考了,为什么微信支付和支付宝支付能作为大多数公司接入的首选呢?其实这个问题大多小伙伴应该是很清楚的,说白了就是人家有庞大的用户流量,目前微信在国内的用户已突破10亿,支付宝也接近8亿左右,如此庞大的用户群体,你还会选择其他的第三方支付(微博钱包、财付通、快钱等)吗,作为普通客户,大家都希望能方便快捷,谁会为了在一个平台买点东西下载或开通其他服务呢,除非你给他有诱惑性的好处。今天我们先说说微信支付的接入及实现。

微信支付接入

首选我们去微信支付的官网,先看看官方提供的开发文档。链接地址:https://pay.weixin.qq.com/wiki/doc/api/index.html。

我们先看看微信支付目前提供的支付方式(如上图),本次只讲原生支付(扫码支付)、App支付及小程序支付三种。

一,准备工作

在开发前,需要先申请一个商家版的微信公众号或微信小程序(目前微信支付只有商家版公众号可开通),然后开通微信支付功能,并做相应的配置。

申请开通微信公众号和开通微信支付(商户)需要等待审核,一般都5个工作日左右。开通成功后,需要获取配置信息:

wx.pay.appid=***wx.pay.mchid=***wx.pay.key=***wx.pay.secret=***

注:appid是公众号ID,mchid是支付的商户ID,

其中appid和secret可以在公众平台找着,mchid和key则在商户平台找到,特别是key(即API_KEY)要在商户平台设置好。本项目中这些配置通过properties文件放在***-payment-service工程的resource根路径下。

在编码之前,还需要登录微信商户平台配置支付回调URL,此配置作为支付成功后回调接口的域名。如果配置的URL为:http://www.abc.com/,你的支付回调路径则可设置为:http://www.abc.com/api/payment/notify。

二,编码阶段

在开始编码前,我们必须先了解清楚微信支付的对接及支付的业务流程。

扫码支付的业务流程:

App支付的业务流程:

小程序支付的业务流程:

从官方提供的业务流程图我们可以大致总结对接流程如下:

1,在发起支付前,先在自己的商户后台下单,生成商户订单信息;

2,根据对应支付方式的参数需求,封装对应所需参数,并调用微信官方提供的统一下单Api接口下单;

3,统一下单成功,微信后台返回对应的响应数据。返回数据类型如下:

a,扫码支付统一下单后会返回生成二维码图片的链接code_url;

b,app和小程序支付统一下单后会返回预支付id,即:prepay_id;

4,如果扫码支付,你要用code_url生成一个二维码展示在前端页面供客户扫码付款;如果是app和小程序支付,后端只需将prepay_id及需要的参数传给app和小程序端。app会通过调用SDK、小程序会通过调用微信的JS发起支付。

5,客户付款成功后,客户的微信端会展示付款结果信息,同时微信后台会异步调用商户后台的回调接口(回调的api接口在统一下单作为下单参数),更新商户系统的支付单状态。

看到这里,大家会发现这三种方式的基本业务流程都差不多,只是由于不同支付方式调起微信应用支付功能的方式不同,所以统一下单成功后返回的参数有所不同。

Controller接口层:

@RestController@RequestMapping(value="/api/payment/")publicclassPaymentController{privatestaticLoggerlogger=LoggerFactory.getLogger(PaymentController.class);@AutowiredprivatePaymentServicepaymentService;/***App支付接口*微信和支付宝统一下单入口**@paramrequest*@return*@throwsException*/@ResponseBody@RequestMapping(value="toPay",method=RequestMethod.POST,produces={"application/json;charset=UTF-8"})publicJSONObjecttoPay(HttpServletRequestrequest)throwsException{StringrequestStr=RequestStr.getRequestStr(request);if(StringUtils.isEmpty(requestStr)){thrownewParamException();}JSONObjectjsonObj=JSONObject.parseobject(requestStr);if(StringUtils.isEmpty(jsonObj.getString("orderNo"))||StringUtils.isEmpty(jsonObj.getString("payAmount"))){thrownewParamException();}//验证订单是否存在StringorderNo=jsonObj.getString("orderNo");doublepayAmount=jsonObj.getDouble("payAmount");if(payAmount<0.01){returnAjaxUtil.renderFailMsg("订单有误,请确认!");}else{//微信支付MapresMap=paymentService.wxAppPayment(orderInfo.getOrderNo(),orderInfo.getPayPrice(),null);//判断微信统一下单是否成功if("SUCCESS".equals(resMap.get("returnCode"))&&"OK".equals(resMap.get("returnMsg"))){//统一下单成功resMap.remove("returnCode");resMap.remove("returnMsg");logger.info("【App支付服务】微信支付下单成功!");returnAjaxUtil.renderSuccessMsg(resMap);}else{logger.info("【App支付服务】微信支付下单失败!原因:"+resMap.get("returnMsg"));returnAjaxUtil.renderFailMsg(resMap.get("returnMsg"));}}}

PaymentService接口方法:

PaymentService实现类部分代码(微信App支付):

@Service(value="paymentService")publicclassPaymentServiceImplimplementsPaymentService{privatestaticLoggerLOGGER=LoggerFactory.getLogger(PaymentServiceImpl.class);@Value("${spring.profiles.active}")privateStringPROJECT_ENV;@Value("${hcc.pay.domain}")privateStringpayDomain;@AutowiredprivatePaymentRecordMapperpaymentRecordMapper;@Override@Transactional(readOnly=false,rollbackFor={Exception.class})publicMapwxAppPayment(StringorderId,doublemoney,LongcustomerId)throwsException{LOGGER.info("【微信App支付】统一下单开始,订单编号="+orderId);SortedMapresultMap=newTreeMap();//生成支付金额doublepayAmount=PayUtils.getPayAmountByEnv(PROJECT_ENV,money);//TODO操作数据库,添统一下单MapresMap=this.wxUnifieldOrder(orderId,PayConfig.TRADE_TYPE_APP,payAmount,null);if(PayConstant.SUCCESS.equals(resMap.get("return_code"))&&PayConstant.OK.equals(resMap.get("return_msg"))){//封装参数返回resultMap.put("appid",PayConfig.WX_APP_ID);resultMap.put("partnerid",PayConfig.WX_MCH_ID);resultMap.put("prepayid",resMap.get("prepay_id"));resultMap.put("package","Sign=WXPay");resultMap.put("noncestr",PayUtils.makeUUID(32));resultMap.put("timestamp",PayUtils.getCurrentTimeStamp());resultMap.put("sign",PayUtils.createSign(resultMap,PayConfig.WX_KEY));resultMap.put("returnCode","SUCCESS");resultMap.put("returnMsg","OK");LOGGER.info("【微信App支付】统一下单成功,返回参数:"+resultMap);}else{resultMap.put("returnCode",resMap.get("return_code"));resultMap.put("returnMsg",resMap.get("return_msg"));LOGGER.info("【微信App支付】统一下单失败,失败原因:"+resMap.get("return_msg"));}returnresultMap;}

统一下单方法(在PaymentService实现类里):

/***

微信支付统一下单

**@paramorderId订单编号*@paramtradeType支付类型*@parampayAmount支付金额*@paramopenid*@return*@throwsException*/privateMapwxUnifieldOrder(StringorderId,StringtradeType,doublepayAmount,Stringopenid)throwsException{//封装参数SortedMapparamMap=newTreeMap();Stringappid=PayConfig.WX_APP_ID;Stringmchid=PayConfig.WX_MCH_ID;if(PayConstant.WX_TRADE_TYPE_JSAPI.equals(tradeType)){appid=PayConfig.XCX_APP_ID;mchid=PayConfig.XCX_MCH_ID;}paramMap.put("appid",appid);paramMap.put("mch_id",mchid);paramMap.put("nonce_str",PayUtils.makeUUID(32));paramMap.put("body",BaseConstants.PLATFORM_COMPANY_NAME);paramMap.put("out_trade_no",orderId);paramMap.put("total_fee",PayUtils.moneyToIntegerStr(payAmount));paramMap.put("spbill_create_ip",PayUtils.getLocalIp());paramMap.put("notify_url",this.getNotifyUrl(PayConstant.PAY_TYPE_WX));paramMap.put("trade_type",tradeType);if(PayConstant.WX_TRADE_TYPE_JSAPI.equals(tradeType)){paramMap.put("openid",openid);}paramMap.put("sign",PayUtils.createSign(paramMap,PayConfig.WX_KEY));//转换为xmlStringxmlData=PayUtils.mapToXml(paramMap);//请求微信后台StringresXml=HttpUtils.postData(PayConfig.WX_PAY_UNIFIED_ORDER,xmlData);LOGGER.info("【微信支付】统一下单响应:n"+resXml);returnPayUtils.xmlStrToMap(resXml);}

统一下单完成,微信后台将相应的参数以xml的形式返回,统一下单成功后返回xml示例:

因此我们需要将统一下单后的xml解析成map(上面的统一下单方法里已经转换成map),并判断下单状态。如果返回的return_code为SUCCESS并return_msg为OK,那么表示统一下单成功,然后封装对应的参数返回给前端。

前端根据下单成功后JAVA后端返回的参数,进行相应的处理并唤起微信应用的支付服务。注意,扫码支付是用统一下单成功后微信后台返回的code_url生成二维码展示给客户。二维码的生成可以前端也可Java后端生成然后以输出流的形式输出到网页上(坚决不建议Java端生成二维码图片保存到文件服务器然后再展示)。

客户在手机调起微信支付服务并输入密码成功付款后,客户手机的微信里会收到支付成功的付款信息,同时微信后台也在异步调用商户的后台接口。这个回调地址就是在统一下单方法里我们传的notify_url字段的参数值。

下面是回调接口代码:

/***微信支付完成回调Api**@paramrequest*@paramresponse*@throwsException*/@RequestMapping(value="notify")publicvoidwxNotify(HttpServletRequestrequest,HttpServletResponseresponse)throwsException{InputStreaminputStream=request.getInputStream();//获取请求输入流ByteArrayOutputStreamoutputStream=newByteArrayOutputStream();byte[]buffer=newbyte[1024];intlen=0;while((len=inputStream.read(buffer))!=-1){outputStream.write(buffer,0,len);}outputStream.close();inputStream.close();Mapmap=BeanToMap.getMapFromXML(newString(outputStream.toByteArray(),"utf-8"));logger.info("【微信支付回调】回调数据:n"+map);StringresXml="";StringreturnCode=(String)map.get("return_code");if("SUCCESS".equalsIgnoreCase(returnCode)){Stringreturnmsg=(String)map.get("result_code");if("SUCCESS".equals(returnmsg)){//更新支付单状态信息intresult=paymentService.wxNotify(map);if(result>0){//支付成功resXml=""+""+""+"";}}else{resXml=""+""+""+"";logger.info("支付失败:"+resXml);}}else{resXml=""+""+""+"";logger.info("【订单支付失败】");}logger.info("【微信支付回调响应】响应内容:n"+resXml);//做出响应response.getWriter().print(resXml);}

到此为止,所有的编码工作已完成。

三,测试(用扫码支付)

选择要购买的商品,然后下单,再去发起支付。

单击“去支付”按钮,跳转到二维码支付页面:

扫码支付完成后,显示二维码的页面会跳转到支付成功页面(带微信支付成功logo),并有3s的倒计时,然后跳转到“订单详情”页。

学习更多的教程关注“重庆千锋”公众号,获取更多的学习教程。

信息转载自网络,更多相关信息请点击:微信营销http:///shhmt/wxyx/

相关文章

  • 京东也上线购物车分享功能:链接可直接发送到微信

    京东也上线购物车分享功能:链接可直接发送到微信 京东App分享功能可以直接发送至微信、朋友圈和QQ等,对方点击链接就能打开,不用麻烦地复制口令。,更难受的一点是,微信还将口令信息折叠,没办法直接长按复制,让淘宝购物车分享变得复杂、难用。,每年双11的时候,很多小伙伴很想买点东西,但又一时间想不起来要买啥,或者不知道那些商品最优惠。

    2024-03-18 09:44
  • 京东退款到微信要多久?运费谁来承担?

    京东退款到微信要多久?运费谁来承担? 1,京东微信支付取消订单之后,会有一个审核时间,一般自营的会在几个消失之内审核,第三方卖家审核时间不定,可能是几分钟也可能是几天,甚至还有强行发货的,所以可以在申请取消订单之后马上联系卖家,请其进行退款操作;2,商家发起退款操作之后,钱会返回原支付途径,如果是零钱是即时到帐,如果是借记卡是1-3个工作日,信用卡是2-5个工作日;3,零钱是否到账可以在下面的界面查询,借记卡和信用卡是否到账可以通过电

    2024-03-13 19:20
  • 如何提高京东店铺流量?附免费流量获取有哪些渠道?

    如何提高京东店铺流量?附免费流量获取有哪些渠道? 2、优化标题和主图,定的标题要准确,主图一定要有亮点,这两个一个是关系到宝贝引流的精准程度,一个是关系到你的宝贝点击率,而且要优化好照片,少修改。,3、选择适当的付费推广,这也是在考验店铺综合运营能力,只有综合能力好的店才能获得更多流量。,4、从其他自媒体做内容营销,吸引流量到店铺;用流量数据飞鸟电商助手配合人工补量,优化浏览、收藏、加购、转化、好评这些个数据,因为这些数据表现越好,系统就认为这个

    2024-03-13 19:03
  • 白条分分卡可以微信转账吗?利息高吗?

    白条分分卡可以微信转账吗?利息高吗? 由于白条分分卡是系统自动分期的,因此是不支持用户取消的,如果不想使用的话建议不要在微信或者支付宝场景进行绑定。,白条分分卡使用额度实际上就是白条额度,因此需要用户按时进行还款,不能逾期了,否则的话是会在征信报告上面留下污点记录的。,若是正常还款,那么上报信用数据也就没有什么关系的了。

    2024-03-13 18:33
  • 京东小金库可以用微信转入吗?可以提现到微信吗?

    京东小金库可以用微信转入吗?可以提现到微信吗? 京东小金库是作为京东商城的金融服务平台,它可以用于消费者购买一些相应的商品。同时大家也可以在京东小金库中进行一些金融增值服务交易的,而微信作为现在很多网购平台都会使用的支付工具,那么京东小金库可以用微信转入吗?可以提现到微信吗?京东小金库可以用微信转入吗?不可以的,京东小金库是不支持直接使用微信充值的。因为目前微信跟京东小金库是没有关联的,用户需要给微信先绑定银行卡,在下载并按照成功的京东金融AP

    2024-03-13 18:24
  • 京东汽车二维码挪车贴是什么?怎么用?

    京东汽车二维码挪车贴是什么?怎么用? 据悉,车主用户可通过微信搜索“京东汽车挪车贴”进入小程序,点击立即领取并跳转至商品商详页,完成购买。,在完成上述操作后,即可选择用电话或微信的方式通知车主挪车。,另据了解,今日,京东汽车与天能电池达成战略合作,共推低碳绿色环保出行。

    2024-03-13 18:17
  • 京东可以引流到微信吗?京东推广方式有哪些?

    京东可以引流到微信吗?京东推广方式有哪些? 原理:当我们想提升某一款宝贝排名,但宝贝综合数据都落后于同行,最后我们把各个维度数据都补到行业平均线上,那么京东给你的排名会比平均线上的竞争对手高。,注意事项:这里推荐大家去做京东优质补量数据,切记别搞那些螺旋,必须按一个周期一个周期去提升,只有这样才才是安全的,还有你为产品做补量,那么这个补量数据是必须做的,如果基础的数据都没有做好,即使你怎么操作也不会有效果。,3、朋友圈营销微信是京东推广最直

    2024-03-13 18:08
  • 京东e卡怎么提现到微信?京东e卡使用注意什么?

    京东e卡怎么提现到微信?京东e卡使用注意什么? 微信搜索抖抖收或者团团收并关注公众号;点击卡券回收进入首页;进入电商卡列表选择京东e卡,提交订单;选择面值后输入卡号卡密提交订单;订单完成,回收成功。,3、在京东购买商品时京东E卡所支付金额不再开具发票,其不影响产品保修,告诫需要报销的人请谨慎购买。,6、京东E卡手机端必须升级到客户端3.9.9版本及以上才可以使用。

    2024-03-13 18:00
  • 京东快递在京东APP端口尚未开放微信支付公告

    京东快递在京东APP端口尚未开放微信支付公告 据测试发现,从京东物流微信小程序和京东商城两个渠道寄件和购买商品,均可以使用微信支付。,据了解,2012年,京东集团全资收购网银在线,获得支付牌照。,数据显示,优惠活动期间,民生银行在京东线上线下场景的新增绑卡量同比增长427%,活跃用户同比增长高达90%,促进释放市场消费潜力,1元消费补贴可为小微商户带来平均3.5元以上的新增消费。

    2024-03-13 17:55
  • 京东闪付支持小米Pay付款政策

    京东闪付支持小米Pay付款政策 有媒体获悉,京东的商品支付页面中出现了Mi Pay。,官网信息显示,Mi Pay是基于天星金融・钱包App(原小米钱包App)使用的一种手机支付方式,可在支持银联闪付、银联付款码、手机App应用内支付、碰一碰银联标签支付等场景使用。,测试发现,从京东物流微信小程序和京东商城两个渠道寄件和购买商品,均可以使用微信支付。

    2024-03-13 17:53