iOS SDK微信支付填坑!(跳转微信支付,只有确定按钮)

这两天接微信支付的SDK,遇到了一个天坑,微信文档里面不写清楚,demo里面也没有,参数少了一个无法支付啊有没有!有没有!有没有!

最后调试成功,得知真相的我眼泪掉下来。。。

先让我们看看是什么情况:

--------------------------------------------------------我是分割线--------------------------------------------------------

预支付订单那块就不说了,基本上都没问题,服务器会返回一个prepay_id预支付订单号,拿到这个订单号在接下来的支付操作中会用到。

根据微信的文档还有demo显示,支付的时候需要这几个参数应该就够了

/** 商家向财付通申请的商家id */
@property (nonatomic, retain) NSString *partnerId;
/** 预支付订单 */
@property (nonatomic, retain) NSString *prepayId;
/** 随机串,防重发 */
@property (nonatomic, retain) NSString *nonceStr;
/** 时间戳,防重发 */
@property (nonatomic, assign) UInt32 timeStamp;
/** 商家根据财付通文档填写的数据和签名 */
@property (nonatomic, retain) NSString *package;
/** 商家根据微信开放平台文档对数据做的签名 */
@property (nonatomic, retain) NSString *sign;

看着没什么问题吧,把前面几个参数用字典序拼接,然后用key加密就生成sign了是吧,是不是都这么认为的?

no!图样图森破!!!

如果你按照这样签名去支付的话,会看到这样的界面

iOS SDK微信支付填坑!(跳转微信支付,只有确定按钮)

不明真相的你一定会一脸懵比iOS SDK微信支付填坑!(跳转微信支付,只有确定按钮)

谁曾想,微信这个大坑X!要签名的参数还差一个appid!把这个参数拼接签名之后,再次跳转微信支付就会有相应的订单信息了。

 

iOS SDK微信支付填坑!(跳转微信支付,只有确定按钮)

上一篇:微信公众平台开发(83) 生成带参数二维码


下一篇:微信支付之退款