博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BufPay.com 个人收款接口 接入步骤
阅读量:6082 次
发布时间:2019-06-20

本文共 3135 字,大约阅读时间需要 10 分钟。

作为独立开发者产品需要收款是非常麻烦的,注册公司维护成本太高,市面上各种收款工具要么手续费太高,要么到账很慢,体验很不好。

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

的优点是个人支付宝、微信就可以收款,不用签约,不用公司资质,并且费率非常低,接入速度非常快。一般人一个下午就可以搞定。

这样用自己的微信和支付宝收款二维码就可以用来给自己的产品收款了,收到款后 会有回调。

收款即时到账, 非常安全靠谱,费率也挺低的, 最低千分之一。下面我们就来看怎么把接入到我们的产品中。

根据 的  接口非常简单,只有两个接口,第一个是发起支付请求,一个是支付结果查询请求,如果发起请求的时候是使用 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 hashlibdef sign(*p):    return hashlib.md5(u''.join(p).encode('utf8')).hexdigest().lower()sign(    u'内容订阅一年期',    'wechat',    '50.00',    '102',    'hi@sideidea.com',    'http://sideidea.com/bufpay_notify',    'http://sideidea.com',    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'  #app secret)

 

下面用 Python 写个完整的Demo

#!/usr/bin/env python#coding: utf8import requestsimport jsonimport hashlibdef 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': '102',            'order_uid': 'hi@sideidea.com',            'notify_url': 'http://sideidea.com/bufpay_notify',            'return_url': 'http://sideidea.com',            'sign': sign(                u'内容订阅一年期',                'wechat',                '50.00',                '102',                '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 的后台,

接下来就可以收款啦。。。

转载于:https://www.cnblogs.com/worldsku/p/9166555.html

你可能感兴趣的文章
开发环境、生产环境、测试环境的基本理解和区别
查看>>
tomcat多应用之间如何共享jar
查看>>
Flex前后台交互,service层调用后台服务的简单封装
查看>>
MySQL入门12-数据类型
查看>>
Windows Azure 保留已存在的虚拟网络外网IP(云服务)
查看>>
修改字符集
查看>>
HackTheGame 攻略 - 第四关
查看>>
js删除数组元素
查看>>
带空格文件名的处理(find xargs grep ..etc)
查看>>
华为Access、Hybrid和Trunk的区别和设置
查看>>
centos使用docker下安装mysql并配置、nginx
查看>>
关于HTML5的理解
查看>>
需要学的东西
查看>>
Internet Message Access Protocol --- IMAP协议
查看>>
Linux 获取文件夹下的所有文件
查看>>
对 Sea.js 进行配置(一) seajs.config
查看>>
第六周
查看>>
解释一下 P/NP/NP-Complete/NP-Hard 等问题
查看>>
javafx for android or ios ?
查看>>
微软职位内部推荐-Senior Software Engineer II-Sharepoint
查看>>