作为一个独立开发者产品需要支付接口是挺麻烦的,支付宝微信都不对个人开放,注册公司维护成本太高,市面上各种收款工具要么手续费太高,要么到账很慢,体验很不好。
看到 「小叮当支付」 这个收款工具,挺有意思的。原理是监控手机微信、支付宝的二维码扫码支付到账通知并回调开发者应用,通知开发者用户的支付结果。
「小叮当支付」的优点是个人普通帐户的支付宝、微信就可以收款,不用签约,不用公司资质,并且费率非常低,回调即时,几乎没有等待。
收款即时到达您的支付宝微信账户,不通过第三方中转,非常安全靠谱,费率也挺低的。下面我们就来看怎么把 「小叮当支付」 接入到我们的产品中。
接入前的准备工作:
1)先注册一个小叮当支付帐号:https://www.xddpay.com
2)在后台上传支付宝和微信未设置金额的二维码各一张,并添加一个接口
3)准备一个闲置的 Android 手机安装叮当宝App ,登录帐号后参照设置步骤
正式接入:
接口地址:https://api.6688pay.com:8080
调用方式:POST
调用参数:
# 参数名 含义 类型 说明 1 order_no 商户订单号 string 必填。商户自己的订单号,请确保唯一 2 subject 商品名称 string 可为空。 3 pay_type 支付类型 int 必填。支付宝=43 微信支付=44 4 money 交易金额 float 必填。交易金额 5 app_id app_id int 必填。接口后台获取 6 extra 商户自定义数据 string(50) 可为空。 7 sign 签名 string(32) 必填,大写。MD5(order_no=123456&subject=&pay_type=43&money=10.00&app_id=10088&extra=abc&接口密钥)
通过如下HTML代码即可发起支付请求:
<form id='formpay' name='formpay' method='post' action='https://api.6688pay.com:8080/?input_charset=utf-8'> <input name='order_no' id='order_no' type='text' value=''/> <input name='subject' id='subject' type='text' value='' /> <input name='pay_type' id='pay_type' type='text' value='' /> <input name='money' id='money' type='text' value=''/> <input name='app_id' id='app_id' type='text' value=''/> <input name='extra' id='extra' type='text' value=''/> <input name='sign' id='sign' type='text' value=''/> <input type='submit' id='submitdemo1'> </form>
2、付款成功异步通知
付款成功后通知您后台的【异步通知网址】,并附带如下参数
# 参数名 含义 类型 说明 1 order_no 商户订单号 string 商户自己的订单号,请确保唯一 2 subject 商品名称 string 和请求时一样,原样返回 3 pay_type 支付类型 int 支付宝=43 微信支付=44 4 money 订单金额 float 订单金额 5 realmoney 实际支付金额 float 表示用户实际支付的金额。一般会和money值一致,如果同时存在多个用户支付同一金额,就会和money存在一定差额,差额一般在1-2分钱上下,越多人同时付款,差额越大。 6 result 支付结果 string 支付成功=success,其它均为失败 7 xddpay_order 小叮当订单号 string 小叮当的订单号 8 app_id 接口APP_ID int 接口APP_ID 9 extra 商户自定义数据 string 和请求时一样,原样返回 10 sign 秘钥 string(32) 大写。MD5(order_no=123456&subject=&pay_type=43&money=10.00&result=success&xddpay_order=654321&app_id=10088&extra=abc&接口密钥)
【异步通知网址】页面的处理代码如下:
protected void Page_Load(object sender, EventArgs e) { //创建XddpayResponse实例 XddpayResponse xddpayresponse = new XddpayResponse(Context); //判断签名 if (xddpayresponse.IsXddpaySign()) { string order_no = xddpayresponse.getParameter("order_no"); //商户自己的订单号 string subject = xddpayresponse.getParameter("subject"); //商品名称 string pay_type = xddpayresponse.getParameter("pay_type"); //支付类型 string money = xddpayresponse.getParameter("money"); //订单金额 string realmoney = xddpayresponse.getParameter("realmoney"); //实际支付金额 string result = xddpayresponse.getParameter("result"); //支付结果 string xddpay_order_no = xddpayresponse.getParameter("xddpay_order"); //小叮当订单号 string app_id = xddpayresponse.getParameter("app_id"); //接口app_id string extra = xddpayresponse.getParameter("extra"); //用户自定义数据 if ("success".Equals(result)) { bool issuccess = true; //------------------------------ //如需要处理业务,请在本处写代码 //注意交易订单不要重复处理 //如果你的支付金额是前端传过来的,这里注意判断实际支付金额 //------------------------------ if (issuccess) Response.Write("success"); else Response.Write("订单处理失败"); } else { //当做不成功处理 Response.Write("支付失败"); } } else { Response.Write("认证签名失败"); } }
3、付款成功同步跳转
同步跳转跟异步通知参数一样,参照上面
一般同步跳转页面只显示支付结果,不进行业务处理。怎么样?是不是很简单。
接下来就坐等收钱啦。啦。啦。。啦。。。
会不会太帅
有种给我付款试试