• ios微信支付 v3


    V2版本和V3版本存在很大的差异。

    1. 从成功通过微信支付商户的资料审核返回的邮件开始:

    你可以获得这些参数  appid,appSecret,partnerID,    partnerKey(从平台上获得) 。

    在v3中你获得不到v2所谓的“paySignKey”,--------- 这个把我害残了。当然在v3你真的不需要这个参数了。

    2.在做微信支付的时候你要抛弃v2版本的做法,你不需要获得access_token,你不需要用sha1加密。我就是结合v2去做,然后越陷越深。

    3. 首先我在做支付之前集成了shareSDK,因为里面有微信的sdk,然后就用sharesdk中的wxSDK了

    4.在appdelegate.m中做些东西,这个就不罗嗦了。但要留意下

    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication
             annotation:(id)annotation 

    这个方法,等下要用到。

    5.打开微信的开放平台:http://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_1 , 记得一定要抛弃v2版本的思想,跟着“文档”走,因为这是最官方的了。

    不得不承认这个文档有点渣。但大体步骤还是ok的。

    6. 用统一下单的api生成预支付单,获取prepay_id.  根据文档的api以及相应的api必传参数  

    去做,这样才能获得prepay_id。

    注意:

    1. 签名生成算法 根据文档来,注意要md5后 转化为  大写

    2.发送post 请求的时候,参数不是NSDictionary,而是xml格式  

    ,记得把NSDictionay 转化为文档上的xml格式。

    NSURL *url = [NSURL URLWithString:strUrl];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [request setValue:@"application/xml" forHTTPHeaderField:@"Content-Type"];
    [request setValue:@"application/xml" forHTTPHeaderField:@"Accept"];
    [request setHTTPBody:[xml dataUsingEncoding:NSUTF8StringEncoding]];
    [request setHTTPMethod:@"POST"];

    3. 然后解析返回的数据。获取prepay_id.

    7. 构造支付请求。

    8. 接收返回的响应。但在这里我又遇到了一个坑。就是我在自己的 WXPayEngine.m 设置微信的delegate,实现

    - (void)onResp:(BaseResp *)resp ,可以当我去真正run的时候,这个东西就没被调用。然后我想在appdelegate.m 实现这个方法,但还是不被鸟。    ???why

    我太想当然了。

    记得在4中我说我们会用到的

    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication
             annotation:(id)annotation 

    你就会发现原因了, 一直返回的都是no,然后就没调用你的delegate了 。但是我并不care这个no,这个delegate。

    我只关注这个url 。 

    打印这个url,你会神奇 的发现这里有你想要的东西。这里我就不做在多解释了。你可以根据这个url做你要的逻辑:支付是否成功。

    that‘s all ,thaks to read

  • 相关阅读:
    【网络游戏同步技术】帧同步的一致性
    【C++】STL常用容器总结之五:双端队列deque
    使 egg-multipart 同时支持 stream 和 file
    react + 图灵api 实现模拟客服
    egg 扩展上传文件白名单
    input[type=file] 样式美化,input上传按钮美化
    react-lazyload 实现图片懒加载
    useEffect 模拟 react 生命周期
    egg 实现下载数据,并保存成excel文件
    egg 实现上传excel,并解析保存到数据库
  • 原文地址:https://www.cnblogs.com/Ohero/p/4448088.html
Copyright © 2020-2023  润新知