支付宝流程
- 平台入驻,获得app开发支付资格
- 支付宝app开发流程
首先入驻支付宝平台获得appid,这是后期后台返回拼接到orderstring所需要的数据,入驻平台参考文档
如上图流程
- 第一步 app端首先获取商品列表获得数据
这里的id便是对应的产品productid。把这个参数和选择的购买数量传入后台,获取订单消息
在这过程中会先过一步,选择收货地址的逻辑
* 这里就是第二步,提交订单获取订单信息,得到后台返回的一个订单号(orderCode=2919213213459345&orderType=1)(随便写的)
- 第三步 然后拿获得的订单信息,吊起支付宝SDK,传给支付宝SDK的API 得到
- 后台返回的参数:以下面拼接起来,在工程plist里面配置一个appScheme,为了支付完成返回退到app里
NSString *orderString = [NSString stringWithFormat:@"%@&sign="%@"&sign_type="%@"",model2.order_spec, model2.sign, model2.sign_type];
- 调用 1. // NOTE: 调用支付结果开始支付
[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
[self responseUP];
}在这个block里面,传入订单号传给自己后台判断回调
2.上面是原生的自己拼接,有时业务是native端返回的一个链接,后台直接拼接好的可以用
if ([urlString extensionWithContainsString:@“https://mclient.alipay.com/cashier/mobilepay.htm”]) {
[[AlipaySDK defaultService] payInterceptorWithUrl:[request.URL absoluteString] fromScheme:@“sdfsddfs” callback:^(NSDictionary *result) {
if ([result[@“isProcessUrlPay”] boolValue]) {
[self responseUP];
}}
}
//request.URL absoluteString 实例
-(void)responseUP{
//传的是当前选择商品生成的订单号,
[CheckPayMsgDataController GET_CheckPayMsgWithOrderCode:self.orderCodes withOrderType:self.orderType withSuccess:^(ResponseObjectBaseModel *response) {
if (response.state == 200) {
//返回成功页面
}
} withSender:nil];
}
- 监听支付宝回调 是在appdelegate里面 可参考iOS支付宝 集成文档