注意:目前支付宝无法使用,请用户暂时不要接入,等待官方的恢复公告!

打款需知

1.打款前请先在控制台填写以下信息

支付服务RESTful 开发文档 - 图1

2.每月的1、2、16、17号为申请打款时间,15号、月尾日为打款时间,确保用户有半个月的追诉期。Bmob将收取10%手续费。

支付回调

如图,可以在支付-支付配置处填入通知url。

支付服务RESTful 开发文档 - 图2

这样在支付成功后会向该url(SDK使用异步通知URL,PHP等调用网页支付的使用同步返回URL)发送post请求,结构如下:

  1. {
  2. "trade_status":"1",
  3. "out_trade_no":"809488d695ed42ec56b57546d2df94cc",
  4. "trade_no":"2016033021001004810225607152"
  5. }

trade_status:表示支付状态,目前只有支付成功才产生回调,值恒为1.
out_trade_no:Bmob返回的订单号
trade_no:支付宝或微信返回的订单号

查询订单

请求描述

在进行支付请求后会返回 out_trade_no 订单号,使用该订单号可以查询订单的支付情况。

请求

  1. X-Bmob-Application-Id: Your Application ID
  2. X-Bmob-REST-API-Key: Your REST API Key
  3. Content-Type: application/json

成功时响应

  • status: 200 OK

  • body:

  1. {
  2. name:订单或商品名称
  3. body:商品详情
  4. create_time:调起支付的时间
  5. out_trade_no:Bmob系统的订单号
  6. transaction_id:微信或支付宝的系统订单号
  7. pay_type:WECHATPAY(微信支付)或ALIPAY(支付宝支付)
  8. total_fee:订单总金额
  9. trade_state:NOTPAY(未支付)或 SUCCESS(支付成功)
  10. }

失败时返回请看 支付功能相关错误码

例子

一个查询例子如下:

  1. curl -X GET \
  2. -H "X-Bmob-Application-Id: Your Application ID" \
  3. -H "X-Bmob-REST-API-Key: Your REST API Key" \
  4. https://api.bmob.cn/1/pay/9f392618f449a71c6fcfdee38d2b29e4

其返回值:

  1. {
  2. "name": "商品",
  3. "body": "商品详情",
  4. "create_time": "2015-03-24 11:14:58",
  5. "out_trade_no": "9f392618f449a71c6fcfdee38d2b29e4",
  6. "transaction_id": "2015061100001000330057820379"
  7. "pay_type": "WECHATPAY",
  8. "total_fee": 0.01,
  9. "trade_state": "NOTPAY",
  10. }

Bmob支付回调

Bmob 加入了支付后页面跳转同步通知页面的URL和异步的通知URL功能,可供开发者在应用的设置页面自行增加。

填写页面跳转同步通知页面的URL(return_url)和异步的通知URL(notify_url)的页面在 应用列表->应用信息->支付设置 。

Bmob异步通知回调(支持微信和支付宝)

  1. 必须保证服务器异步通知页面(notify_url)上无任何字符,如空格、HTML标签、开发系统自带抛出的异常提示信息等;

  2. Bmob支付是用POST方式发送异步通知信息,因此该页面中获取参数的方式,如:
    request.Form(“out_trade_no”)、$_POST[‘out_trade_no’];

  3. 支付宝主动发起通知,该方式才会被启用;

  4. 只有在Bmob的交易管理中存在该笔交易,且发生了交易状态的改变,Bmob才会通过该方式发起服务器通知;

  5. 服务器间的交互,不像页面跳转同步通知可以在页面上显示出来,这种交互方式是不可见的;

  6. 第一次交易状态改变(即时到账中此时交易状态是交易完成)时,不仅页面跳转同步通知页面会启用,而且服务器异步通知页面也会收到Bmob发来的处理结果通知;

  7. 程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给Bmob的字符不是success这7个字符,Bmob服务器会不断重发通知,直到超过24小时。

  8. 一般情况下,24小时以内完成8次通知(通知的间隔频率一般是:2m,10m,10m,1h,2h,6h,15h);

  9. 程序执行完成后,该页面不能执行页面跳转。如果执行页面跳转,Bmob会收不到success字符,会被Bmob服务器判定为该页面程序运行出现异常,而重发处理结果通知;

  10. 异步通URL的调试与运行必须在服务器上,即互联网上能访问;

  11. 当用户的服务端收到Bmob服务器异步通知的$_POST[‘out_trade_no’]时,应该调起一次查询订单的接口获得订单的状态是1,才能准确的判断该笔订单是成功;

  12. 支付成功结果以Bmob后台订单列表或查询订单接口查询到的订单状态为准。