app中使用支付宝支付

1.第一次使用支付宝连sdk和文档都找不到,可怜如我.
先放文档地址:https://doc.open.alipay.com/doc2/detail.htm?spm=0.0.0.0.9UY7yk&treeId=59&articleId=103675&docType=1
再放SDK和demo下载地址:https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1

2.有了上面两个链接,支付宝支付基本就没有什么问题了.下面说下我在集成工程中遇到的坑以及注意的问题.
从集成顺序开始说起:
第一步:先签约这个看文档,准备资料,一般都能通过.https://doc.open.alipay.com/doc2/detail.htm?spm=0.0.0.0.kRnLNb&treeId=58&articleId=103542&docType=1
第二步:上传公钥,https://doc.open.alipay.com/doc2/detail.htm?spm=0.0.0.0.T86ZOt&treeId=115&articleId=103242&docType=1 这里有生成公钥说明

这里有个坑,我之前上传过一次,要修改公钥.有两个地址,这里就不说了,在2016年以后那个地址就有问题了,这里上传新的地址:
https://openhome.alipay.com/platform/keyManage.htm
点击修改RSA就可以了.
生成的私钥就是在app内部使用的private key.这个一般要放在服务器端.

3.我开始的时候都不知道上传的参数有什么意思,要上传什么,这是要传递的参数说明:
https://doc.open.alipay.com/doc2/detail.htm?spm=0.0.0.0.oAcwCa&treeId=59&articleId=103663&docType=1

4.还有如何判断是否交易成功?这里是客户端返回码说明
https://doc.open.alipay.com/doc2/detail.htm?spm=0.0.0.0.v32duH&treeId=59&articleId=103671&docType=1

5.客户端要通知服务器,设置这个notify_url 参数的url值就好了,交易成功后,支付宝会发送post请求到你设置的url.

6.app端要解析支付宝返回的数据.会有一个result 字符串,
里面有很多信息,但并不是由json组成.这里有个方法能帮忙获得返回的字符串中的每个字段的信息

result = "partner="2088911889384278"&seller_id="whydjnsj@sina.com"&out_trade_no="4KZCJFIL54V8R8J"&subject="ceshi"&body="ha"&total_fee="0.01"&notify_url="http://www.xxx.com"&service="mobile.securitypay.pay"&payment_type="1"&_input_charset="utf-8"&it_b_pay="30m"&show_url="m.alipay.com"&success="true"&sign_type="RSA"&sign="NSJwi804vI7wz8fcCBslckCqV/Aw1cjKbl4pJ94b7SF1myBWMmJIX5OJQe5e3s3SBBAu+3HwGrJ+7DTHuaItv35fpWX4xdq+zD4WVBRlziRz1ic2HgiihVllgQIWQkQBk0Gt2sKXI9MVs32eZd0IbeZhB+k/lojEKHvyQ6iHdu0="";

      NSString *str = resultDic[@"result"];
      NSArray *arrar = [str componentsSeparatedByString:@"&"];
      for (NSString *str in arrar) {
      // NSLog(@"%@",str);
       NSString *newstr = [str stringByReplacingOccurrencesOfString:@"\"" withString:@""];
       NSArray *newArray = [newstr componentsSeparatedByString:@"="];
       for (int i = 0;i<newArray.count;i++) {
                    
        NSString *one_str = newArray[i];
       if ([one_str isEqualToString:@"success"]) {
         success = [newArray[i+1] boolValue];
        }
                    
       if ([one_str isEqualToString:@"out_trade_no"]) {
        out_trade_no = newArray[i+1];
                    }
                }
      }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一. 相关资料 支付宝开放平台(SDK&开发文档):https://open.alipay.com/platfor...
    Lee_007阅读 9,588评论 0 3
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    羊驼先生丶阅读 3,892评论 1 3
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    sillen阅读 5,216评论 0 1
  • 一 API版本说明 下面是官网的说明: 做个简单说明: API1.0接口主要用于网站(包括手机端的网站)的调用;A...
    IIGEOywq阅读 4,014评论 0 2
  • iOS支付 iOS支付分为两类,第三方支付和应用内支付(内购)。 第三方支付包括:支付宝支付、微信支付、银联支付、...
    帅不过oneS阅读 7,931评论 2 8