小马去年秋天在淘宝开了个店卖手工皮具,生意还行,就想自己搭个独立站,省点平台抽成。用的WordPress,模板挺好看,产品页也搭完了,卡在收款上。
他是怎么一步步掉里的
一开始他想得简单,挂个收款码不就行了。
找人P了张支付宝收款码的图,贴在网站底部。头两天真有人付了,但问题很快就炸了——付了钱的人把截图发到客服微信,他得人工核对金额和订单号。一天十几单还行,后来跑了个小红书推广,一晚上涌进来两百多单。
他跟他女朋友两个人审核到凌晨三点,还是搞错了三单。有人付了198收到298的商品,有人付了钱压根没发货,被挂到黑猫上反馈。
第一个:支付宝当面付不是给网站用的
他找了家支付服务商的销售,开了支付宝当面付。销售说这个费率低,千分之三。小马不懂,就签了。
当面付又叫"条码支付",设计场景是便利店扫码枪扫顾客付款码。他把这个接口接到网站上,让用户填金额手动转,然后截图上传凭证。跑了一个月,支付宝给他发了条通知——商户号因"交易场景不符"被限制收款功能。
商户号被封那天我正好在他工作室喝茶,他脸都是绿的。里面还有大概两万多块没结算,客服电话打了三天没人接。
支付宝商家后台有个规则说明,写得清清楚楚:当面付不得用于网络交易。那个销售为了开单什么都说"能用",出了问题影子都找不到。后来我看央行支付新规解读与行业变化 - 彩虹易支付,里面写了这两年支付通道收紧的背景,小马这个遭遇算是典型的"不合规场景接入"。
第二个:回调自己写,改了两周bug
商户号被限制后,他决定正规接入。找了个开源的支付插件,觉得开源的没问题,自己改改就能用。
年轻人写代码有个毛病,觉得自带的回调逻辑太啰嗦,自己重写了一版。上线之后订单动不动就"未支付",用户明明付了钱,系统就是不发货。他查了两天,发现是回调里mysql连接超时,脚本直接exit了,没返回success给支付网关。
支付网关那边每隔几分钟重试一次,重试几次后就不再重试了,订单就卡在中间态。他手动补发了几十单。
这个细节很多教程不提:MySQL有个wait_timeout参数,默认几小时,但连接池长时间闲置后被回收,回调脚本拿到的是个断掉的连接。你如果不在查询前做一次ping检查,fetch出来的结果就是false,然后逻辑就全乱了。
转折点:把支付当服务用,别自己搞
他折腾了快两个月,后来我建议他直接用现成的易支付接口,别自己处理底层通道的事。
改完之后其实就那么几步:在易支付后台申请商户号,下载SDK塞到WordPress里,配置页填三个参数——商户号、密钥、通知地址。不用关心是微信还是支付宝,不用管回调重试机制,不用分别对接两家的接口文档。创建订单时传金额和订单号,用户就跳转到支付页面。
他做皮具的,不是做支付的。易支付从零搭建实录:域名+服务器+配置全流程 - 彩虹易支付那篇写的配置过程,其实半天就能搞定,他非要自己造轮子造了两个月。
现在他怎么样了
独立站现在还跑着,一个月流水大概十几万,具体数字他不说,但从他换的那辆摩托车来看,应该赚了些。
支付这块他已经不碰了,所有订单由易支付托管处理,出问题直接查后台日志。最近在研究怎么把小程序也接上,我让他悠着点,先把独立站的结算周期理顺再说。
这次经历里他最亏的不是钱,是时间。两个月的精力如果铺在推广上,销量可能早就翻倍了。有些人总觉得技术自己掌控才放心,但支付这件事,稳定和合规排在"可掌控"前面。你现在让他再选一次,他肯定拿那两个月去骑川藏线都不碰回调代码了。