app中使用支付宝支付

作者: 司马捷 | 来源:发表于2016-02-29 16:38 被阅读215次

    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];
                        }
                    }
          }

    相关文章

      网友评论

        本文标题:app中使用支付宝支付

        本文链接:https://www.haomeiwen.com/subject/ayygkttx.html