支付分析

来源:互联网 发布:阿里云报价 编辑:程序博客网 时间:2024/05/16 14:22

      • NSDecimalNumberHandler
      • 下订单
      • 选择支付界面
        • 微信支付

NSDecimalNumberHandler

NSDecimalNumberHandler这个类遵循了NSDecimalNumberBehaviors协议,这个类可以帮你设置NSDecimalNumber对象(round off)完美和处理错误.不需要去创建一个子类.你可以使用这个类的一个实例对象去作为NSDecimalNumber中任何一个以..Behavior:.结尾的方法的参数.如果你觉得不需要什么特殊的要求,那么很可能不需要使用这个类.想要了解更多,可以看一下NSDecimalNumberBehaviors这个协议.
///roundingMode : 舍入模式,有四种值可选 NSRoundUp, NSRoundDown, NSRoundPlain, and NSRoundBankers./// scale:小数点后要保留的位数/// raiseOnExactness: 精度有问题的时候,抛出异常/// raiseOnOverflow: 精度溢出的时候,抛出异常/// raiseOnUnderflow: 精度低到需要用二进制的时候,抛出异常/// raiseOnDivideByZero: 如果除数为0的话,抛出异常.NSDecimalNumberHandler *roundUps = [NSDecimalNumberHandler                                        decimalNumberHandlerWithRoundingMode:(NSRoundingMode)roundingMode                                        scale:scale                                        raiseOnExactness:raiseOnExactness                                        raiseOnOverflow:raiseOnOverflow                                        raiseOnUnderflow:raiseOnUnderflow                                        raiseOnDivideByZero:raiseOnDivideByZero];

下订单

对订单的数据进行判断,首先根据输入的应付金额,折扣率,以及不打折部分,算出实付金额,然后存放到一个字典中,当做参数,发送订单消息给后台.
然后根据后台返回来的信息.获取如下信息:

  1. 订单号
  2. 订单时间
  3. 把订单号存放到用户的默认设置里面.同步
  4. 跳转到支付选择界面.

选择支付界面.

支付这块,有三种选择:

  1. 微信支付
  2. 支付宝支付
  3. 网银支付

微信支付

  1. 使用WXApi,进行判断手机是否已安装微信客户端.如果没有,直接提示退出
PayReq* req = [[PayReq alloc] init];[WXApi sendReq:req];
  1. 有如下参数
    1.openID: URLSchemes: 自己设置
    2.partnerID: 商户id: 商家向财付通申请的商家id
    3.prepayId: 预支付Id,根据后台返回的参数获取.
    4.nonceStr:随机串,防重发 后台返回
    5.timeStamp: 时间戳,防重发 后台返回
    6.package: 商家根据财付通文档填写的数据和签名
    7.sign 商家根据微信开放平台文档对数据做的签名 后台返回.
0 0
原创粉丝点击