BufPay.com 个人收款接口 接入步骤
作为独立开发者产品需要收款是非常麻烦的,注册公司维护成本太高,市面上各种收款工具要么手续费太高,要么到账很慢,体验很不好。
看到 「BufPay.com 个人收款」 这个收款工具,挺有意思的。原理是监控手机微信、支付宝的二维码扫码支付到账通知并回调开发者应用,通知开发者应用订单支付结果。
「BufPay.com 个人收款」的优点是个人支付宝、微信就可以收款,不用签约,不用公司资质,并且费率非常低,接入速度非常快。一般人一个下午就可以搞定。

这样用自己的微信和支付宝收款二维码就可以用来给自己的产品收款了,收到款后「BufPay.com 个人收款」 会有回调。
收款即时到账, 非常安全靠谱,费率也挺低的, 最低千分之一。下面我们就来看怎么把「BufPay.com 个人收款」接入到我们的产品中。
根据 「BufPay.com 个人收款」的 接口文档 接口非常简单,只有两个接口,第一个是发起支付请求,一个是支付结果查询请求,如果发起请求的时候是使用 BufPay 的默认支付页面的话,第二个支付查询接口都可以不用要。
注意: 在接入之前,先需要用一个闲置的 Android 手机安装 Bufpay 的监控 App 哦,安装步骤
接口地址:https://bufpay.com/api/pay/aid 这个地址在用户后台的配置页面
调用方法:POST
调用参数:
- name, 必填, 订单销售商品名称
- pay_type, 必填, 支付方式(可选alipay/wechat)
- price, 必填, 订单价格
- order_id, 必填, 订单号
- order_uid, 选填, 订单购买用户(建议设置为购买用户编号,便于后续对账)
- notify_url, 必填, 支付城后回调地址
- return_url, 选填, 支付城后前台跳转地址
- sign, 必填, 将参数按 name + pay_type + price + order_id + order_uid + notify_url + return_url + app secret 顺序拼接后 MD5
注意:接口默认直接跳转支付页面,如果 api 后面加 ?format=json 那么返回结果就是 json 格式的,需要开发者自己展示付款二维码
json 格式接口返回:
{
"status": "ok",
"aoid": "cad5076f55834f5fadddcfc018cc4068",
"pay_type": "wechat",
"price": "35.00",
"qr_price": "",
"qr": "wxp://f2f0-vFHHDCw3L4kPne1JzXyQ0nO0QKpQK2e"
"qr_img": "data:image/jpeg;base64,/9j/4AAQSk......Bxiv/2Q==",
"expires_in": 270,
"return_url": "http://v2ex.com/bufpay_return",
}
- status, 付款请求结果(只有为 ok 的时候才有其他的值)
- aoid, bufpay平台订单唯一标示可用于查询订单状态
- pay_type, 支付类型 alipay/wechat
- price, 订单价格
- qr_price, 支付二维码的金额,如果为空表示使用的是不固定金额二维码,具体金额需要用户输入
- qr, 支付二维码内容
- qr_img, 支付二维码图片 base64 格式
- expire_in, 支付二维码剩余有效秒数
- return_url, 支付成功跳转地址
错误代码:
- {"status": "sign_error"}, 签名错误
- {"status": "order_payed"}, 订单已支付
- {"status": "order_expire"}, 订单已过期
- {"status": "qr_limit"}, 支付二维码不足
这个是 Python 的签名函数
import hashlib def sign(*p):
return hashlib.md5(u''.join(p).encode('utf8')).hexdigest().lower() sign(
u'内容订阅一年期',
'wechat',
'50.00',
'',
'hi@sideidea.com',
'http://sideidea.com/bufpay_notify',
'http://sideidea.com',
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' #app secret
)
下面用 Python 写个完整的Demo
#!/usr/bin/env python
#coding: utf8 import requests
import json
import hashlib def sign(*p):
return hashlib.md5(u''.join(p).encode('utf8')).hexdigest().lower() def pay():
resp = requests.post(
'https://bufpay.com/api/pay/2?format=json',
data={
'name': u'内容订阅一年期',
'pay_type': 'wechat',
'price': '50.00',
'order_id': '',
'order_uid': 'hi@sideidea.com',
'notify_url': 'http://sideidea.com/bufpay_notify',
'return_url': 'http://sideidea.com',
'sign': sign(
u'内容订阅一年期',
'wechat',
'50.00',
'',
'hi@sideidea.com',
'http://sideidea.com/bufpay_notify',
'http://sideidea.com',
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' #app secret
)
}
)
return json.loads(resp.text) def query(aoid):
resp = requests.get('https://bufpay.com/api/query/' + aoid)
return json.loads(resp.text) if __name__ == '__main__':
resp = pay()
print resp
print query(resp['aoid'])
怎么样?是不是很简单, 哦对了, 在正式接入之前,还需要去 BufPay.com 的后台,配置页面配置一下自己的收款二维码

接下来就可以收款啦。。。
BufPay.com 个人收款接口 接入步骤的更多相关文章
- 个人免签即时到账收款接口 bufpay.com 支持多账号收款
有很多 bufpay 的用户反馈,单个手机收款有些时候不太方便,切换手机太麻烦:或者是营业额比较多,希望分摊到多个账号上面. 基于以上的问题,bufpay 开发了多手机收款的功能:每个收款的手机安装 ...
- PC软件/web网站/小程序/手机APP产品如何增加个人收款接口
接入前准备 通过 XorPay 注册个人收款接口,原理是帮助你签约支付宝和微信(不需要营业执照)支持个人支付宝和个人微信支付接口,大概几分钟可以开通,开通后即可永久使用 PC 网站接入 效果:用户点击 ...
- 微信SDK开发——接口接入
园子里面很多关于微信接口开发的文章,Github也一堆的开源代码. 官方文档地址:http://mp.weixin.qq.com/wiki/home/index.html 接下来主要以代码为主,接口说 ...
- jdbc执行Statement接口的步骤
jdbc执行Statement接口的步骤如下: 1)驱动注册程序: Class.forName(com.mysql.jdbc.Driver); 2)获取连接对象: Connection conn = ...
- ios的Ping++支付接入步骤-b
1. Client 发送支付要素给 Server 2. Server 发送支付请求并将返回的支付凭据传给 Client 3. Client 调起支付控件完成支付 4. 渠道同步返回支付结果给 Clie ...
- 个人免签收款接口 bufpay.com 支持限额设置
有产品希望收款分布到不同的手机,每个当手机达到某一限额以后就停止改手机的收款. bufpay.com 近期上线了收款限额设置功能,配置界面如下图: 每个手机微信或支付宝可以单独设置每日限额,如果该手机 ...
- xddpay.com 个人支付接口接入流程
作为一个独立开发者产品需要支付接口是挺麻烦的,支付宝微信都不对个人开放,注册公司维护成本太高,市面上各种收款工具要么手续费太高,要么到账很慢,体验很不好. 看到 「小叮当支付」 这个收款工具,挺有意思 ...
- 淘宝API学习之道:淘宝TOP之API接口接入教程
作为一个中小型站点开发人员,淘宝API的开放大大缩短了站点的开发周期和运作效率.面对海量的数据.开发人员仅仅要细致阅读开发文档,熟悉对应的接口,就能够把数据导入自己的站点,这样就不必望洋兴叹了. 眼下 ...
- 微信App支付接入步骤&支付中前后端交互流程
最近对微信App支付(App端集成微信支付SDK)申请步骤,以及终端在进行微信支付时商户App.商户Server.微信App.微信支付Server的交互流程进行了简单了解.这篇文章应该算是学习笔记,分 ...
随机推荐
- c windows控制台输出颜色文字
#include <windows.h> //设置文字颜色void SetColor(int ForgC){ WORD wColor; //We will need this handle ...
- Idea工具使用
Idea Project与module的理解 1.基础环境的搭建 1.1.IDEA使用--字体.编码和基本设置 2.插件的安装 2.1.在IDEA中配置Gauge环境 2.2.IdeaVim的安装:: ...
- UTF-8文件编码格式中有无签名问题汇总(BOM)
UTF-8签名(UTF-8 signature)也叫做BOM(Byte order Mark),是UTF编码方案里用于标识编码的标准标记.如果多个文件设置了签名,在二进制流中就会包含多个UTF-8签名 ...
- Oracle基础之count(1)和count(*)的区别
在数据库中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数.很多人其实对这三者之间是区分不清的.本文会阐述这三者的作用,关系以及背后的原理. 我在网上看到一些所谓的优 ...
- devexpress 中 XtraTabcontrol 改变BackColor 的方法
装载自CSDN,原文地址 https://blog.csdn.net/zjzytnn/article/details/53699340 今天在实现CAD文件的读和显示操作的时候,需要将CAD文件显示 ...
- LeetCode-Maximal Rectangle[code]
code: #include <iostream> #include <vector> #include <stack> #include <algorith ...
- Python学习---基础函数的学习
1.1. 基础函数 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 灌输一个概念:Python中函数就是对象,函数和我们之前的[1,2,3],'abc ...
- 个人Hadoop编程代码记录
**WordCount package cn.cpl.recom; import java.io.IOException; import java.util.StringTokenizer; impo ...
- 设计模式:访问者(Visitor)模式
设计模式:访问者(Visitor)模式 一.前言 什么叫做访问,如果大家学过数据结构,对于这点就很清晰了,遍历就是访问的一般形式,单独读取一个元素进行相应的处理也叫作访问,读取到想要查看的内容+ ...
- java IO流 总结
[-] 1什么是IO 2数据流的基本概念 1 数据流 2 输入流Input Stream 3 输出流 数据流分类 3 标准IO 命令行参数 标准输入输出数据流 4javaIO层次体系结构 5 非流式 ...