APP接入支付宝流程(iOS版本)

发表于:2018-6-13 11:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:小胖QAQ    来源:简书

#
APP
#
流程
#
app
分享:
  1.去支付宝官网下载官方Demo,把appid和私钥写入,验证拿到的账号信息是否正确。之前接入支付宝的时候,就是因为拿到的appid不对,在接入过程中找这个问题花费了很多不必要的时间。
  2.清楚支付宝app支付流程,流程图如下:
  app支付架构
  app支付流程
  3.导入支付宝SDK和在Build Phases选项卡的Link Binary With Libraries下增加相应依赖
  4.开始支付宝的接入,访问后台接口,传入相关订单信息参数,后台使用私钥对订单信息进行RSA加密,并将签名字符串base64编码和UrlEncode后返回到客户端,签名示例如下:
  charset=utf-8&biz_content=%7B%22out_trade_no%22%3A%22170224144622309845%22%2C%22total_amount%22%3A%220.01%22%2C%22subject%22%3A%22%E6%AD%BC20%E6%88%98%E6%96%97%E6%9C%BA%22%2C%22timeout_express%22%3A%2230m%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%2C%22body%22%3A%22%E6%AD%BC20%E6%88%98%E6%96%97%E6%9C%BA%22%2C%22passback_params%22%3A%2210%22%2C%22seller_id%22%3A%222088021544263245%22%7D&method=alipay.trade.app.pay?ify_url=http%3A%2F%2Fhseschool.app360.cn%2Fapp%2FpingNotify%2FaliPayNotify&app_id=2016040501268128&sign_type=RSA&version=1.0×tamp=2017-02-24+14%3A46%3A22&sign=W8zMEj%2FCtjafRcLW9mZXdd34YQgg53RHqhTZChBd6NvJNDxNqyPgCS8mhGrqOksU%2BzjkjA%2FrqpKo2b4T4Km7%2BTyqG30cVYIqTBweu5bGONiQvIizIQma%2Fbs5a0hw7ZEnI92w6K4N0ylShMoJpS4TRgYSn%2Fe%2Fh9fkMfFMQF5yXvs%3D
  5.拿到签名之后,对签名中的支付宝appid和本地进行校验,成功之后才进行支付。
  6.调起支付宝SDK进行支付,示例代码如下:
  /**
  *支付宝支付接口
  *
  * @param orderStr 订单信息
  * @param schemeStr 调用支付的app注册在info.plist中的scheme
  * @param compltionBlock 支付结果回调Block,用于wap支付结果回调(非跳转钱包支付)
  */
  - (void)createAliPayment:(NSString *)orderStr appURLScheme:(NSString *)schemeStr withCompletion:(CompletionBlock)completionBlock
  {
  [[AlipaySDK defaultService]payOrder:orderStr fromScheme:schemeStr callback:^(NSDictionary *resultDic) {
  completionBlock(resultDic);
  }];
  }
  7.处理支付宝回调结果,示例结果如下:
  {
  "memo" : "xxxxx",
  "result" : "{
  \"alipay_trade_app_pay_response\":{
  \"code\":\"10000\",
  \"msg\":\"Success\",
  \"app_id\":\"2014072300007148\",
  \"out_trade_no\":\"081622560194853\",
  \"trade_no\":\"2016081621001004400236957647\",
  \"total_amount\":\"0.01\",
  \"seller_id\":\"2088702849871851\",
  \"charset\":\"utf-8\",
  \"timestamp\":\"2016-10-11 17:43:36\"
  },
  \"sign\":\"NGfStJf3i3ooWBuCDIQSumOpaGBcQz+aoAqyGh3W6EqA/gmyPYwLJ2REFijY9XPTApI9YglZyMw+ZMhd3kb0mh4RAXMrb6mekX4Zu8Nf6geOwIa9kLOnw0IMCjxi4abDIfXhxrXyj********\",
  \"sign_type\":\"RSA2\"
  }",
  "resultStatus" : "9000"
  }
  当resultStatus==9000说明,支付完成,此时调用后台结果,查询实际支付结果。因为实际支付是否成功,完全依赖服务端异步通知。
  否则,根据支付宝提供的错误码,显示相应的错误信息。





上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号