作为一个独立开发者产品需要支付接口是挺麻烦的,支付宝微信都不对个人开放,注册公司维护成本太高,市面上各种收款工具要么手续费太高,要么到账很慢,体验很不好。

看到 「小叮当支付」 这个收款工具,挺有意思的。原理是监控手机微信、支付宝的二维码扫码支付到账通知并回调开发者应用,通知开发者用户的支付结果。

「小叮当支付」的优点是个人普通帐户的支付宝、微信就可以收款,不用签约,不用公司资质,并且费率非常低,回调即时,几乎没有等待。

 
 

收款即时到达您的支付宝微信账户,不通过第三方中转,非常安全靠谱,费率也挺低的。下面我们就来看怎么把 「小叮当支付」 接入到我们的产品中。


接入前的准备工作:

1)先注册一个小叮当支付帐号:https://www.xddpay.com

2)在后台上传支付宝和微信未设置金额的二维码各一张,并添加一个接口

3)准备一个闲置的 Android 手机安装叮当宝App ,登录帐号后参照设置步骤

 

正式接入:

1、发起支付请求,参照 接口文档 或 Demo

接口地址: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、付款成功同步跳转

同步跳转跟异步通知参数一样,参照上面

一般同步跳转页面只显示支付结果,不进行业务处理。

怎么样?是不是很简单。

接下来就坐等收钱啦。啦。啦。。啦。。。

会不会太帅

有种给我付款试试