电商的支付前、中、后这3个流程都是怎么设计的?

支付环节对于任何一个涉及到线上交易的网站都是最重要的一个环节,大部分的商业网站都是想让用户将买买买进行到底,如果在支付环节出现问题,让原本就要付款的用户失去购买欲望,后果可想而知。如何在支付环节让提高用户的购买概率?其实现有的很多商务网站的网站在这方面已经做的很成熟了,我们可以多了解这些支付流程的设计,思考为什么这么做,以此作为参考来优化自己产品的支付流程。

支付前

1.触发用户注册登录的条件。对比两大电商平台京东和淘宝,京东允许用户在选购好商品加入购物车,在进入支付环节前才要求用户登录,而淘宝则在商品加入购物车时就要求用进行登录操作。 这个细节对比起来看也许没多大影响,因为用户始终是要登录的。但是我觉得京东的做法更容易提高新用户的购买概率,在支付环节前提醒用户注册登录,他们可能不会因此而放弃这一车子精挑细选的商品。

2.非注册用户也可以购买支付。对于较少网上购物的用户或者一些购买频次低的商业网站,很多人会因为需要注册一个新的账号而放弃支付。这时候如果考虑让用户在非注册登录的情况下进入支付流程,这样的话可以有效地提高那些不想注册的用户的购买概率。 Dell,onlineshoes等网上商城就为用户提供了非注册用户快速结账和注册新用户登录两种方式。

支付中

3.一个清晰简洁的流程更有助于用户顺利完成支付。亚马逊的支付流程非常清晰,在选好商品后只需要两步即可完成整个支付流程;在有清晰的流程的前提下让用户尽可能少的填写信息,多提供选项进行勾选,从而加快用户整个的支付效率。

4.告知用户所处在支付流程的那个环节。一个支付进度导航条可以让用户清晰的知道自己所处支付的哪个环节、已经做什么、下一步需要做,还有多少个步骤才能完成支付。

5.减少一切可以让用户跳出支付环节的其他信息。当用户进入支付环节,就已经有很强烈的购买意愿了,如果在这个环节因为过多的其他信息链接让用户离开支付流程,不管是有意识的还是无意识的,都可能会终止支付。亚马逊在支付环节除了支付相关信息没有任何其他不相关的内容,用户在支付环节就只有一件事可以做,那就是付款。

6.更多的入口引导用户进入下一步。我们可以看到亚马逊在内容的顶部和底部均有一个按钮引导用户进入下一个支付步骤。虽然功能重叠但是很简单粗暴地告诉用户,你可以继续下一步了,赶紧付款吧。

7.更多的支付方式可以保障用户顺利进行支付。很多时候用户会因为银行卡、支付宝没钱等原因放弃支付,如果提供更多的支付方式给他们选择,也许就能顺利完成这次交易了。腾讯为Q币充值支付提供了12种充值方式,简直可以说是只有你不想付没有付不到。

8.提醒用户尽快完成支付。像大部分的票务类网站,票劵都具有很强的时效性,如果超过时间未完成支付会严重浪费其他用户选购时间,从而造成资源浪费。这时候强烈的支付提醒功能就很有必要了。

支付后

9.顺利地让用户完成支付后应该给用户一个反馈。成功支付完成后的可以通过页面、邮件、短信等方式告知用户已经付款成功并附上相关购买的信息和安全提醒等,这样做可以让用户清楚自己已经完成了付款同时也可以再一次确认没有买错商品。

10.支付完成后额外的惊喜。用户支付成功后表明他是愿意在这个网站上花钱的,但未必下一次还会继续,这时候给予用户一次抽奖或者赠送一些卡劵之类的好处,也许能激起用户下次购买的欲望。比如淘宝在每次支付完成后都为用户提供了一次抽奖的机会,虽然中奖概率奇低,却大大加强了用户的参与感。

总结上述内容从支付前、支付中和支付后简单描述了一些设计要素,要设计一个好的支付流程远不止这些内容,而且不同的商业网站支付流程也不一样。但无论如何一个清晰简洁的支付流程的设计概念总能帮助用户更好的完成支付,从而提高用户购买概率。

PS:程序员在实现支付功能的时候,可能只会关注如何支付成功以及支付失败的具体功能实现,如何引导用户去支付,或在支付界面进行营销,好像是设计师和产品的工作,我觉得程序员也应该加入到设计当中,我相信程序员只有充分了解意图后才能以最好的想法去实现程序,作为初学者就更应该了解这些了,如果你自己完成一个商城项目,你可能先是产品、设计师、然后才是程序员。

时间: 2024-10-08 21:23:08

电商的支付前、中、后这3个流程都是怎么设计的?的相关文章

二叉树的前中后序遍历简单的递归

二叉树的遍历 无外乎广度和深度 其中深度又分为前中后序遍历三种情况  这三种遍历若只是递归方法 自然很是简单 但递归代码简单 若嵌套层次太深 会栈溢出 二叉树节点数据结构: struct Binary_node{    int val;    Binary_node *left;    Binary_node *right;    Binary_node(int v = 0, Binary_node *le = nullptr, Binary_node *ri = nullptr) :val(v

非递归前中后序遍历二叉树

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 写在前面: 最近准备找工作,捡起原来学习过的各种知识,加上一些自己的理解,梳理一下流程,巩固自己的认识,一步两步,一步两步... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 二叉树的遍历是树操作的基础,一般的前中后序递归遍历比较简单,这里就不列出了,主要是非递归实

二叉树的前序建立,前中后序遍历的非递归算法

二叉树的前序建立递归算法以及前中后序遍历的递归算法已经是人尽皆知了,递归算法也确实为代码的编写带来了很大的方便.然而,有时我们也确实需要它们的非递归算法.将递归算法转化为非递归算法可以帮助我们深入了解函数的调用与栈的原理.这里总结一下二叉树的这些重要的非递归算法. 一.前序建树 前序建树的基本思路是,接收用户输入的一组字符串,其中'#'代表空树,其他代表树结点的数据域值.例如,要建立如下一棵树 需要输入"AB#D##C##". 而非递归的思路是,1.设一个标志位来判断当前创建的结点是左

原创:《Excel在零售及电商行业数据化管理中的应用》之“什么是数据化管理?

<Excel在零售及电商行业数据化管理中的应用>之“什么是数据化管理?” 各位: “随着全零售时代的到来,传统商业的每一个供应链细节都离不开数据的支撑.特别是以C端驱动的供应链模式成为主流的今天,用数字解读顾客的需求成为品牌和渠道竞争的核心.我们需要学会全面的利用数字化的方式,掌握对人.货.场.财等的经营管理.” 今天我们会从以下几个方面给大家分享”什么是数据化管理“ 1.企业大佬们,是如何看数据化管理的? 2.数据化管理的定义及Excel在数据化管理中意义: 3.数据化管理的作用及其4个层次

二叉树的建立及其前中后序遍历

1 //二叉树存储结构: 2 struct node 3 { 4 Int data; 5 node *lchild; 6 node *rchild; 7 }; 8 9 //二叉树在建树前根节点不存在: 10 Node *root = NULL; 11 12 //新建结点: 13 node *newNode(int v) 14 { 15 node *Node = new node; 16 Node->data = v; 17 Node->lchild = NULL; 18 Node->rc

Qt实现 动态化遍历二叉树(前中后层次遍历)

binarytree.h 头文件 1 #ifndef LINKEDBINARYTREE_H 2 #define LINKEDBINARYTREE_H 3 #include<c++/algorithm> 4 #include<c++/cstdio> 5 #include<string> 6 #include<c++/string> 7 #include<c++/vector> 8 #include<vector> 9 #include&

kmp(前中后最长相同长度)

http://acm.hdu.edu.cn/showproblem.php?pid=4763 Theme Section Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5815    Accepted Submission(s): 2890 Problem Description It's time for music! A lot o

关于前中后序排列

大致可以总结如下: 前序排列(preorder):根左右 中序排列(inorder):左根右 后续排序(postorder):左右根 重点看"根"的位置,在最前面就是前序,中间就是中序,后面就是后序.补充一点,上述排列都是DFT(深度优先排列,Depth First Traversals).另有Breadth First or Level Order Traversal . 详解 首先上个例子: 中序是左根右,所以从最左的左节点4开始(其他的还不够"左",例如2,其

前中后序建立树或者直接历遍

前中后序建立树或者直接历遍 代码实现 void postOrder(int root,int start,int end) { if (start > end) return; int index = start; while (inOrder[index] != preOrder[root] ) index++; postOrder(root + 1, start, index - 1); postOrder(root + index - start + 1, index + 1, end);