• 简介
  • 使用需知
  • 打款需知
  • 支持平台
  • 启用须知
  • SDK 接入
  • 支付调用
  • 订单查询
  • 应用外支付回调

    简介

    iOS支付SDK接口是Bmob为广大开发人员提供的统一、正规的收费手段,让没有企业认证的个人开发者,也能通过支付宝和微信向用户收费。该文档可以让您快速为自己的应用接入Bmob的支付功能。下图为使用支付的流程。

    支付服务iOS SDK开发文档 - 图1

    使用需知

    使用Bmob支付组件前,请认真阅读Bmob服务协议。

    对于以下两种情况,开发者需要特别注意:

    1.违反服务协议,特别是含有以下内容的应用:

    1)封建迷信和/或淫秽、色情、下流的信息或教唆犯罪的信息;
    2)博彩有奖、赌博游戏、“私服”、“外挂”等非法互联网出版活动;

    Bmob平台有权进行独立判断并采取技术手段予以删除、屏蔽或断开链接。同时,本平台有权视用户的行为性质,采取包括但不限于暂停或终止服务,限制、冻结或终止本平台网站账号的使用,追究法律责任等措施。

    2.应用遇到过多的用户投诉,如应用的使用者支付了相关款项,但是该应用却没有提供相应的服务。本平台有权限制或冻结该应用支付收入的所有款项,并保留追究法律责任的权利。

    3.Bmob将在每笔交易中收取10%服务费。

    打款需知

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

    支付服务iOS SDK开发文档 - 图2

    2.每月的1、2、16、17号为申请打款时间,15号、月尾日为打款时间,确保用户有半个月的追诉期。

    支持平台

    目前 iOS 端仅提供支付宝和微信支付支持。

    启用须知

    • 在Bmob账号管理平台进行身份认证,以保证资金安全,否则无法使用支付等功能。
    • 提交申请时,开发者的联系方式至少要有两种(邮箱,电话,QQ),方便后续支付弹出的订单页面展示,如下:

    支付服务iOS SDK开发文档 - 图3

    SDK 接入

      1. BmobPaySDK.framework 拖入项目中,并选取 copy items if needed

    支付服务iOS SDK开发文档 - 图4

      1. 在 info.plist 添加以下两个字端:
        A. View controller-based status bar appearance,类型为 BOOL,值为 NO
        B. LSApplicationQueriesSchemes,类型为 Array,字符串元素 alipaysweixin

    支付服务iOS SDK开发文档 - 图5

    1. <key>UIViewControllerBasedStatusBarAppearance</key>
    2. <false/>
    3. <key>LSApplicationQueriesSchemes</key>
    4. <array>
    5. <string>alipays</string>
    6. <string>weixin</string>
    7. </array>
      1. 添加使用的framework:
        A. CoreTelephony.framework
        B. libz.1.2.5.tbd
        C. libsqlite3.tbd
        D. libc++.tbd
        E. libWeChatSDK.a -> 可以直接点击下载,使用微信支付需要导入此模块

    注意,如果使用微信支付的话,导入 libWeChatSDK.a 文件可能会产生模块重复。发生重复模块时,删除其中一个 libWeChatSDK.a 文件即可。

    支付调用

    1. #import <BmobPaySDK/Bmob.h>

    在 AppDelegaet 注册应用:

    1. [Bmob registerWithAppKey:@"xxxxxxxx"];

    注意,如果没有注册 AppKey ,则不会有任何反应,也不会有回调。

    然后进行关键函数调用:

    1. [BmobPay payWithPayType:BmobAlipay //支付类型选择
    2. price:@888 //订单价格,0 - 5000
    3. orderName:@"订单名称" //不为空
    4. describe:@"订单描述" //不为空
    5. result:nil]; //应用内支付回调

    订单查询

    注意事项:查询操作自动从内存中获取订单号,应该等待支付操作回调执行时或执行后才进行查询接口调用。

    接口如下:

    1. + (void)queryWithResult:(BmobPayResultBlock)result;

    成功查询会返回以下类似数据:

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

    应用外支付回调

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

    支付服务iOS SDK开发文档 - 图6

    这样在支付成功后会向该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:支付宝或微信返回的订单号