原理介绍

第一步: 安装App

下载 Ccpay Android App

点击下载  手机端可使用浏览器识别二维码下载!

配置App

Ccpay App安装好以后,必须开启相关权限,否则Ccpay App无法检测到支付通知。

小米手机配置    三星手机配置    华为手机配置    部分手机没有制作教程,请参考小米手机配置。

注意:修改手机这些设置的目的是为了在微信和支付宝收到款以后,在手机通知栏出现通知消息同时不让手机进入休眠和结束 Ccpay App、微信、支付宝进程,这样才能保证正常收款。

注意:用于安装 Ccpay App 的这个手机最好放在家里专用,并且一直连上充电线。

第二步: 配置收款码

「Ccpay 个人收款」 的原理是通过安装到手机的App监控手机微信、支付宝的二维码扫码支付到账通知并回调开发者应用。消费者在支付的时候是扫描开发者的个人微信、支付宝收款二维码。

  • 注册并且登陆 api.928vip.cn
  • 收款二维码 页面,上传你自己微信、支付宝 App 直接生成收款二维码,固定金额和不固定金额二维码

注意:Ccpay 支持企业支付宝。

注意:在 支付宝 - 我的 - 商家服务 - 商家工具 - 收钱码 可以申请提现免费、永不过期、稳定跳转 的支付宝收款二维码。

注意:当你发起支付请求的时候,系统会自动匹配和支付价格最接近的固定金额支付二维码,如果没有找到可用的(比如已经被使用或者不存在这个价格的支付二维码)系统会使用不固定金额支付二维码(支付页面会提示消费者手动输入支付金额)。

举例:比如你的商品价格是¥35,那么你可以上传你自己的微信、支付宝固定金额支付二维码¥34.97、¥34.98、¥34.99、¥35、¥35.01、¥35.02、¥35.03。当你发起金额为¥35支付请求的时候,会把 ¥35±0.1 的支付二维码都作为候选,选择一个最接近并且当前没有被使用的支付二维码返回给消费者支付。

第三步: API接入

发起付款接口

接口地址:https://zhifuma.fun/createOrder  (在后台应用配置页面查看)
调用方法:POST (注意 content-type 设置为 application/x-www-form-urlencoded 哦)
调用参数:
 - name, 必填, 订单销售商品名称
 - pay_type, 必填, 支付方式(可选alipay/wechat)
 - price, 必填, 订单价格
 - order_id, 必填, 订单号
 - order_uid, 必填, 订单购买用户(可以为空字符串,但是建议设置为购买用户编号,便于后续对账)
 - notify_url, 必填, 支付成功后回调地址
 - return_url, 必填, 支付成功后前台跳转地址(可以为空字符串)
 - feedback_url, 选填, 用户支付后未到账(可能超时付款),支付页面显示的反馈按钮链接(可以为空字符串)
 - sign, 必填, 将参数按
   name + pay_type + price + order_id + order_uid + notify_url + return_url + feedback_url + app secret
   顺序拼接后MD5(纯 value 拼接,不要包含 + 号)

   如果有问题,还可以参考 API 调试文档

注意:如果你希望使用 BudPpay 的支付页面,那么你的后台构造签名等参数后返回给用户浏览器,在浏览器提交 form 到 BudPpay,就会显示支付页面;
如果要自定义支付页面,那么就在 api 后面加参数 format=json 你后台请求这个接口返回结果就是 json 格式的,需要你自己展示付款二维码。
注意:如果 api 后面加参数 round_robin=true 那么轮询使用各个手机收款(排除超过限额和权重为0的)。
注意:如果 api 后面加参数 expire=秒数 可以自定义订单过期秒数,默认是 300 秒。
注意:如果 api 后面加参数 price_type=floor 只会用价格小于请求价格的二维码;加参数 price_type=ceil 只会用价格大于请求价格的二维码。
注意:如果 api 后面加参数 price_gap=0.1 价格备选范围就是 支付价格 ±0.1 内(默认为 0.1)。
注意:如果 api 后面加参数 no_int=true 则不会使用整数金额二维码。
注意:如果 api 后面加参数 user_cache=true 那么创建订单时如果 同一个用户(order_uid)存在相同金额(price)相同支付渠道(pay_type)未过期的订单,
那么继续使用这个订单(这样不会产生很多订单、可以提高成功率、用户多次点击付款订单金额不会变化) 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==", "cid": 1, "expires_in": 270, "return_url": "http://XXXXXX.com/Ccpay/return.php", "feedback_url": "http://XXXXXX.com/feedback", } - status, 付款请求结果(只有为 ok 的时候才有其他的值) - aoid, Ccpay平台订单唯一标示可用于查询订单状态 - pay_type, 支付类型 alipay/wechat - price, 订单价格 - qr_price, 实际支付二维码的金额,如果为空表示使用的是不固定金额二维码,具体金额需要用户输入,需要显示让用户输入 price 的数值 - qr, 支付二维码内容 - qr_img, 支付二维码图片 base64 格式 - cid, 该订单分配到的手机编号 - expires_in, 支付二维码剩余有效秒数 - return_url, 支付成功跳转地址 - feedback_url, 用户支付后未到账(可能超时付款),支付页面显示的反馈按钮链接 错误代码: - {"status": "sign_error"}, 签名错误 - {"status": "order_payed"}, 订单已支付 - {"status": "order_expire"}, 订单已过期 - {"status": "free_limit"}, 免费版达到每日订单限制 - {"status": "fee_error"}, 余额不足 - {"status": "qr_limit"}, 无可用二维码,可能是达到你设置的收款额度上限 或 没有可用于这个订单金额的二维码, 你可以多传一些这个价格附近的固定金额或上传一个不固定金额二维码 - {"status": "missing_argument", "info": "xxxxx"}, 缺少 xxxx 参数

成功支付后 Ccpay 通知回调

当订单支付成功后 Ccpay 会立即向你的服务器发起回调通知
接口地址:你传入的 notify_url 参数
调用方法:POST
调用参数:
 - aoid, Ccpay平台订单唯一标识
 - order_id, 你传入的 order_id 参数
 - order_uid, 你传入的 order_uid 参数
 - price, 订单价格
 - pay_price, 用户支付的金额
 - sign, 签名, 参数 aoid + order_id + order_uid + price + pay_price + app secret 顺序拼接后 MD5

当你收到 Ccpay 的回调请求后,如果响应 HTTP code 200 那么 Ccpay 会认为通知成功,
否则会再次通知 6 次,间隔为 1/2/4/16/64/300 分钟。
              

付款结果查询接口

接口地址:https://zhifuma.fun/getOrder?orderId=201901102225513177
调用方法:GET

注意:api 里面的 aoid 为发起付款接口返回的 aoid
注意:该接口支持 JSONP 方式调用,增加 callback 参数即可

接口返回:
 - {"status": "not_exist"}, 订单不存在
 - {"status": "new"}, 新订单
 - {"status": "payed"}, 订单已支付未回调
 - {"status": "success"}, 订单已支付已经回调成功
 - {"status": "fee_error"}, 账户余额不足扣除手续费失败,订单未回调
 - {"status": "expire"}, 订单已过期
              

签名函数示例(Python)

import hashlib

def sign(*p):
    return hashlib.md5(u''.join(p).encode('utf8')).hexdigest().lower()

sign(
    u'内容订阅一年期',
    'wechat',
    '50.00',
    '102',
    '[email protected]',
    'http://example.com/Ccpay_notify',
    'http://example.com',
    'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'  #app secret
)
              

Demo下载

php通用支付插件     

支付宝转账模式

使用该模式,只需上传一张支付宝不固定金额二维码即可。系统自动根据支付宝转账协议生成任意金额支付二维码(qr_src),并且接口返回支付宝app跳转链接(jump_url),可直接跳转支付宝App支付。

如何启用该模式? 在后台应用配置 - 多手机配置 - 设置 alipay userid

支付宝扫描以下二维码查看 userid

FAQ

  • 微信可以想支付宝一样,唤起APP完成支付吗?
  • 不行,不过微信支付在微信浏览器里面可以长按二维码识别。

  • 用「Ccpay 个人收款」收款安全吗?
  • 肯定的,用户支付的钱款不经过 Ccpay 而是直接到你的微信和支付宝钱包,即时到账,绝对安全。

  • 「Ccpay 个人收款」稳定吗?会不会掉单?
  • Ccpay 用了严密的支付检测技术和二维码调度算法且服务器在国内,稳定运行已久,无一漏单。

  • 安装 Ccpay App 的手机需要 root 吗?
  • 不用。

  • 为什么要安装App呢,如果手机没电或者没网会怎样?
  • 「Ccpay 个人收款」的原理就是监控微信、支付宝的二维码到账通知,通过在 Android 手机上面安装「Ccpay 个人收款」App 可以监听到账通知,从而实现支付成功回调。如果手机没电或者没网络,那么手机就无法收到支付到账通知,用户扫码支付成功后就没办法回调你的服务接口了。

  • 我用于收款的微信或支付宝账号会不会有什么风险?
  • 没有风险,这个支付过程和平常扫码支付一样,合理合规合法。

  • 可以自定义支付页面吗?
  • 可以的。通过设置 format=json 参数可以返回 json 格式的支付数据,你可以自己渲染支付页面。

  • 你们平台如何扣费呢?
  • 每月的套餐费用需要提前升级或者续费,每笔的手续费需要预先充值到你的 Ccpay 账户。

  • 订单未支付成功会扣除手续费吗?
  • 不会,只有 Ccpay App 检测到支付成功了,并且通知了你的服务器,才会扣手续费。

  • 账户充值的手续费没用完可以提现吗?
  • 不能。

  • 用户已经扫码付款,但是我没有收到回调是什么情况呢?
  • 有多种可能。用户支付后到你的应用收到回调通知,大概有几秒的延迟,如果 Ccpay 调用你的回调通知接口失败,Ccpay 会连续通知三次,每次间隔一分钟。还有可能是订单已经过期后用户才付款,这也会导致不会收到回调通知。

  • 支付二维码过期后用户转账付款,怎么办呢?
  • 你可以在后台的订单管理页面,找到这个用户对应的订单,然后点击「已经收款」按钮,api.928vip.cn 会调用你的回调接口通知这个订单已经收款。

  • 支持支付宝官方收钱码吗,提现免费的那种?
  • 支持的,Ccpay 支持支付宝普通收款码和官方收钱码。

  • 用 java 调用接口怎么会提示证书出错呢?
  • 可能是 jdk 对 let's encrypt ssl 证书的支持问题,把 API 的 https 换成 http 即可

  • 微信收到款后在通知栏怎么没有金额呢,只有到账通知?
  • 应该是没有开启 “微信收款语音播报” 在微信「我」-「钱包」-「收付款」- 「二维码收款」- 点击右上角三个点 开启收款到账语音提醒。

  • Ccpay 收款有限额吗?
  • 没有。

  • 上传收款二维码数量有限制吗?
  • 没有数量限制。每天最多上传5w张,超过5w张可以发给客服批量导入。

  • 支持企业微信买单二维码吗?
  • 支持。

  • 我流水这么多,可以免掉套餐费吗?
  • 30 天流水超过 100w 自动免费延期套餐一个月。

小米手机MIUI配置

1. 开启 Ccpay APP 通知读取权限

注意:必须开启 Ccpay APP 的通知读取权限,否则无法读取支付通知。
安装 Ccpay APP 后会自动跳转到通知设置页面,请找到「Ccpay 收款」,并勾选。
以后要开启,请在系统「设置」-「更多设置」-「系统安全」-「通知读取权限」勾选。

2. 关闭神隐模式 和 关闭休眠

在系统「设置」-「电量和性能」-「神隐模式」- 「应用配置」- 右上角三个点「关闭应用后台智能省电」。

在系统「设置」-「锁屏和密码」-「自动锁屏」- 选择「屏幕永不休眠」。

3. 开启 Ccpay收款、微信、支付宝 的开机自启权限

在系统「设置」-「授权管理」-「自启动管理」- 勾选 Ccpay收款、微信、支付宝 允许自启动。

4. 锁定 Ccpay收款、微信、支付宝 任务,不要被系统自动清理

打开三个应用,然后按 设置键 呼出任务管理,向下拉动应用,锁定应用。

5. 关闭 WLAN 优化

在系统「设置」-「WLAN」-「高级设置」- 关闭「WLAN优化」。

6. 开启 Ccpay收款、微信、支付宝 的全部推送通知

在系统「设置」-「通知和状态栏」-「通知管理」- 找到 Ccpay收款、微信、支付宝 开启所有通知。

7. 关闭 微信勿扰模式

在微信「设置」-「勿扰模式」- 关闭 勿扰模式。

注意:如果你在电脑上也登陆了这个收款微信号,请记得把手机静音取消,不然就收不到付款通知哦。

8. 开启 微信收款语音播报

在微信「我」-「钱包」-「收付款」- 「二维码收款」- 点击右上角三个点 开启收款到账语音提醒。

9. 开启 支付宝收付款消息提醒

在支付宝搜索「支付助手」- 点击支付助手右上角图标 - 开启 接收支付消息提醒。

10. 开启 分屏显示

微信不能切换到首页(聊天列表页);如果手机支持分屏,建议把微信、支付宝显示到两个分屏,有助于即时收到微信支付宝到账推送,进程不被手机异常退出。

三星手机配置

1. 开启 Ccpay APP 通知读取权限

注意:必须开启 Ccpay APP 的通知读取权限,否则无法读取支付通知。
安装 Ccpay APP 后会自动跳转到通知设置页面,请找到「Ccpay 收款」,并勾选。
以后要开启,请在系统「设置」-「锁定屏幕与安全」-「其他安全设置」-「高级设置」-「通知访问」勾选。

2. 关闭省电模式 和 关闭休眠

在系统「设置」-「常规设置」-「电池」- 「省电模式」- 点击关闭。

在系统「设置」-「显示」-「休眠」- 选择永不不要。

3. 开启 Ccpay收款、微信、支付宝 的开机自启权限

「智能管理器」-「应用程序管理」-「自启动应用程序」- 勾选 Ccpay收款、微信、支付宝 允许自启动。

4. 锁定 Ccpay收款、微信、支付宝 任务,不要被系统自动清理

打开三个应用,然后按 设置键 呼出任务管理,向下拉动应用,锁定应用。

5. 睡眠期间保持 WLAN 开启

在系统「设置」-「链接」-「WLAN」- 右上角「高级」- 「睡眠期间保持 WLAN 开启」。

6. 开启 Ccpay收款、微信、支付宝 的全部推送通知

在系统「设置」-「应用程序」- 找到 Ccpay收款、微信、支付宝 - 「通知」开启所有通知。

7. 关闭 微信勿扰模式

在微信「设置」-「勿扰模式」- 关闭 勿扰模式。

注意:如果你在电脑上也登陆了这个收款微信号,请记得把手机静音取消,不然就收不到付款通知哦。

8. 开启 微信收款语音播报

在微信「我」-「钱包」-「收付款」- 「二维码收款」- 点击右上角三个点 开启收款到账语音提醒。

9. 开启 支付宝收付款消息提醒

在支付宝搜索「支付助手」- 点击支付助手右上角图标 - 开启 接收支付消息提醒。

10. 开启 分屏显示

微信不能切换到首页(聊天列表页);如果手机支持分屏,建议把微信、支付宝显示到两个分屏,有助于即时收到微信支付宝到账推送,进程不被手机异常退出。

华为手机配置

1. 开启 Ccpay APP 通知读取权限

注意:必须开启 Ccpay APP 的通知读取权限,否则无法读取支付通知。
安装 Ccpay APP 后会自动跳转到通知设置页面,请找到「Ccpay 收款」,并勾选。
以后要开启,请在系统「设置」-「应用和通知」-「应用管理」- 底部「设置」-「特殊访问权限」-「通知使用权」勾选。

2. 关闭省电模式 和 关闭休眠

在系统「设置」-「电池」- 「省电模式」和「超级省电」- 点击关闭。

在系统「设置」-「显示」- 「休眠」- 点击永不(如果这里没有出现永不休眠选项,那么需要开启开发者模式才会出现这个选项,在关于手机里面,点击5次版本号即可开启)。

3. 开启 Ccpay收款、微信、支付宝 的开机自启权限

「设置」-「电池」-「启动管理」- 勾选 Ccpay收款、微信、支付宝 允许自启动。

4. 锁定 Ccpay收款、微信、支付宝 任务,不要被系统自动清理

打开三个应用,然后按 设置键 呼出任务管理,点击锁定图标,锁定应用。

5. 关闭 WLAN+ 和 开启休眠保存 WLAN 连接

在系统「设置」-「无线和网络」-「WLAN」- 「WLAN+」- 点击关闭。

在系统「设置」-「无线和网络」-「WLAN」- 底部「设置」- 「在休眠状态下保存 WLAN 连接」选择始终。

6. 开启 Ccpay收款、微信、支付宝 的全部推送通知

在系统「设置」-「应用和通知」- 「通知管理」- 找到 Ccpay收款、微信、支付宝 - 「通知」开启所有通知。

7. 关闭 微信勿扰模式

在微信「设置」-「勿扰模式」- 关闭 勿扰模式。

注意:如果你在电脑上也登陆了这个收款微信号,请记得把手机静音取消,不然就收不到付款通知哦。

8. 开启 微信收款语音播报

在微信「我」-「钱包」-「收付款」- 「二维码收款」- 点击右上角三个点 开启收款到账语音提醒。

9. 开启 支付宝收付款消息提醒

在支付宝搜索「支付助手」- 点击支付助手右上角图标 - 开启 接收支付消息提醒。

10. 开启 分屏显示

微信不能切换到首页(聊天列表页);如果手机支持分屏,建议把微信、支付宝显示到两个分屏,有助于即时收到微信支付宝到账推送,进程不被手机异常退出。