Andriod 监听微信支付宝收款实现个人支付宝支付接口!附安卓 App(开源)

2019-02-27 12:15:20 +08:00
 pytth

前言

这个 App 不是我写的,我只是自己研究了一下这个 App 怎么使用的,然后分享给大家。

App 作者开源了

https://github.com/WeihuaGu/receiptnotice

解决方案

原生支付宝,微信支付只服务于有营业执照、个体工商户的商户。无法以个人身份(或以个人为主体)直接申请 API。不支持个人申请。所以,便有了个人的一些解决方案,手机安装一个 app,然后这个服务监听手机收到的通知,如果是收到收款的通知,就把信息推送到指定的 url 去。

界面就这点东西了!只需要设置后端接口,就可以接收这个 APP 监听的支付宝收款数据了,APP 会以 POST 方式向您的接口 POST 一段 JSON 数据。

作者说通过 adb 在控制台查看接收的数据,所以我就找到了 App 返回的数据格式。

{"title":0.01,"time":"2019-02-26","title":"支付宝支付","content":"成功收款 1.00 元。享免费提现等更多专属服务,点击查看"}

下面是我写的 PHP 后端简易版

<?php
// 定义接收 JOSN 数据
header("Content-Type:application/json");

// 接收从 APP 端 POST 过来的数据
$json = $GLOBALS['HTTP_RAW_POST_DATA'];

// 将 JSON 数据转换为 PHP 对象
$obj = json_decode($json);

// 解析对象返回字符串
$money = $obj->money; //  返回支付金额
$title = $obj->title; //返回支付标题
$time = $obj->time; // 返回支付时间
$content = $obj->content; // 返回支付内容

// 连接数据库
$con = mysql_connect("数据库地址","数据库账号","数据库密码");
if (!$con){die('Could not connect: ' . mysql_error());}

//选择数据
mysql_select_db("数据库名", $con);

//设置字符集
mysql_query("SET NAMES UTF8");

//插入数据库
mysql_query("INSERT INTO 表名 (paymoney, paytime, title, content) VALUES ('$money', '$time', '$title', '$content')");

//关闭数据库连接
mysql_close($con);

?>

数据库接收到的通知

App 下载

https://www.coolapk.com/apk/com.weihuagu.receiptnotice

支付 demo

http://likeyunba.com/demo/Alipay-Listen/

TANKING
2019-02-27

12036 次点击
所在节点    程序员
21 条回复
beordle
2019-02-27 12:33:56 +08:00
支持开源啊 很有用的项目
xiaoz
2019-02-27 12:38:33 +08:00
感谢分享,待会儿去研究下。
des
2019-02-27 12:40:17 +08:00
拿不到订单号?
imicksoft
2019-02-27 12:50:32 +08:00
先收藏回头研究一下
djxf
2019-02-27 12:50:38 +08:00
好用,能拿到付钱人姓名吗
ryV60s
2019-02-27 12:52:46 +08:00
应该适合那种一段时限内差个几分的支付,好区分订单
codingoc
2019-02-27 13:02:40 +08:00
基于 Android 的通知,手动 parse,只能拿到金额,我用 java 也弄了一个服务端
pytth
2019-02-27 13:24:16 +08:00
@des 订单号自己生成!
pytth
2019-02-27 13:24:42 +08:00
@djxf 拿不到。
pytth
2019-02-27 13:25:14 +08:00
@ryV60s 是啊,手动设置收款码。
des
2019-02-27 13:29:02 +08:00
@pytth
不是那个,你可以去看看支付宝的账单页面,那个订单号不是自己生成的
pytth
2019-02-27 13:31:15 +08:00
@des 我知道。安卓通知栏是监听不到支付宝的订单号的,所以自己开发后端的时候,自己生成自己的订单号存入数据库方便鉴别。
codingoc
2019-02-27 13:35:02 +08:00
原理就是读取通知中的文本,其他信息都是拿不到的,不过这样很稳定
des
2019-02-27 13:36:35 +08:00
@pytth 就是说这个嘛,这些信息不够详细,如果要对账单的话估计很难搞
elfive
2019-02-27 16:54:59 +08:00
是不是只有我一个人在想 TANKING 是不是打错了。。。
pytth
2019-02-27 19:22:21 +08:00
@elfive 没错的。我的英文名,用了 10 年
wanxue
2019-03-22 17:27:37 +08:00
看日志上是有接收到收款通知信息的,但根本没有发送到接口啊,是啥情况。
tdy1
2019-05-12 10:07:36 +08:00
@pytth 在不?如何联系你
qwe121002
2020-05-19 00:23:14 +08:00
@pytth 你好,如何联系你呢,想了解点有关于支付方面的知识
pytth
2020-05-19 02:24:02 +08:00
@qwe121002 ZmFjZTYwMDk=

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/539192

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX