订单支付
申明
+(void)payOrderWithSign:(NSString *)sign random:(NSString*)random paymentInfo:(HRPaymentInfo *)paymentInfo extraMessage:(NSDictionary *)extraMessage payChannelType:(NSString *)payType delegate:(UIViewController<UIViewControllerTransitioningDelegate> *)delegate;
参数
delegate
一个继承UIViewControllerTransitioningDelegate
的ViewController,会从此viewController present出支付页面,请在此view Controller中实现如下方法:
- (UIPresentationController *)
presentationControllerForPresentedViewController:
(UIViewController *)presented
presentingViewController:
(UIViewController *)presenting
sourceViewController:
(UIViewController *)source{
return
[[HRCustomPresentationVc alloc]
initWithPresentedViewController:presented
presentingViewController:presenting];
}
若不实现此方法将会收到错误信息。正常展示支付页面效果如下:
sign
生成sign步骤:
1.拼接字符串(按照以下字段及顺序拼接):
appID=bc3a54eb-92ab-4cce-ba90-4dbf1183b3fd&body=这是一个商品&mchID=SYT002&outTradeNo=0932409876361760&totalFee=88&random=123456&key=a3ac6835-29e9-4326-804a-5664238362d7
2.使用MD5签名(所有字母为大写字母),最终生成字段:
675A8455357E6AC355CAC5AD3E968C61
random
参与签名的随机数
payType
支付方式: 华瑞极付 为 @"0" ;极时花 为 @"1"
paymentInfo
支付信息
@interface HRPaymentInfo : NSObject
@property(nonatomic,copy) NSString *attach;//附加数据(非必须)
@property(nonatomic,copy) NSString *body;//商品描述(小于等于128位字节)
@property(nonatomic,copy) NSString *confirmOrder;//是否需要确认支付(暂不支持需要确认模式)
@property(nonatomic,copy) NSString *detail;//商品详情(非必须,小于等于512位字节)
@property(nonatomic,copy) NSString *goodsTag;//商品标记(预留非必须)
@property(nonatomic,copy) NSString *limitPay;//指定支付方式(非必须)
@property(nonatomic,copy) NSString *mchID;//商户号
@property(nonatomic,copy) NSString *outTradeNo;//商户订单号(小于等于32位)
@property(nonatomic,copy) NSString *timeValid;//交易有效时间
@property(nonatomic,copy) NSString *totalFee;//总金额
@property(nonatomic,copy) NSString *deviceInfo;//设备号
@property(nonatomic,copy) NSString *mchName;//商户名字(小于等于128位字节)
@property(nonatomic,copy) NSString *feeType;// 货币类型
//具体商品信息,不能只送sku,可以只送spu或者2个都不送
@property(nonatomic,copy) NSString *SKU;//
@property(nonatomic,copy)NSString *SPU;//
@end
extraMessage
可包含预填表信息
{
cardNo: "", // 银行卡号
revMobile: "", // 银行预留手机
mobile: "", // 手机号
checkData:{
userName:"",
mobile:"",
}
}
返回
key
HR_REQ_KEY_ORDER_PAY_BIND_CARD
callBackResult
此返回对象为id
类型的对象,以JSON格式说明:
javascript
{
mchID: "", //商户号
outTradeNo: "", //商户订单号
payID: "", //支付流水号
totalFee: "", //总金额
tradeType: "", //交易类型
peronUnionID: "", // 弱实名用户personUnionID
returnCode: "", // 结果代码
returnMsg: "" // 结果信息
}