ios集成支付宝
首先使用支付宝提供的openssl 生成rsa 的公钥 和私钥 。 NSString *privateKey = @"MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAMNhV8wFBELkSKN4vEKLwzlY+M9oTVbmvffig7oz/lh9xTaEhj4iY20q9AI7lAy2NAGvhN/f0mUVugk9dDDi5z1LgMh56QU+kiO/JEVrXeRXgCbew3z2VOUuNOF4kVWSimrCAs+lSjVKDOKCzFIM8y7eNS74aSNcRVRrE3Xl6GUJAgMBAAECgYEAjb+Czg7Zr5olpQwEMZdqlKGbKga3DZQsQLqC7UWpgxQET3BIYK3cSqh+DVyiJbLO+mYX1cBxyUrBBNEkCg+kyUsCPy4r+/Dkplc8fvw51scYK1mNDysB3W7aVdW0ikfze5vxzTbogGGALSvFK4jHaf+kM3PqhYQmEaAvwlW9HK0CQQDyKp+11ARMrB7zeGkW9pxKdc8o99poldZyQZlKhWdjIf4h1VfYUlg6zknZgaVMpLQNg2jToBRtB5BE8EALEXeLAkEAzoqHoeGNW9VzUQr7Lq7dGGEz4VGVUbD95kP8kfEpFyoUCbyp8z2BgeyAKelnNxjl3i4+gtM0gyP/t8FNYCCIOwJBANxiQfp9unP0aC52tFy7jbyNvjuwZEmtov1UCacyBMbI1rf/qfQp7DWIKtkRDVfUxC9QGgQNuMkIixjR89aezMUCQQCADKSwOT1BfSFEUnGN7L2IWuMmQ0U242tWMjpJZOFbyiuoKb6X3j8HhM+krF7gauBAkh0RUM4Sq+PjUcWd3i13AkAt94kMFEOm61jMT/7xwzVoWz3qhm+TchpLCDRc1F8Mv6JvXFWOobN3gBObQK64n1cu+Pmni9fpqp0eGd9qWmN+";
如图所示,当用户完成支付之后重新唤醒有用 NSString *appScheme = @"zfb"; 名字与plist保持一致
//1.订单模型 Order * order = [[Order alloc]init]; //2.签名 id<DataSigner> signer = CreateRSADataSigner(privateKey); //3.传入订单描述 进行 签名 NSString *orderSpec=order.description; NSString *signedString=[signer signString:orderSpec]; //4.生成订单字符串 NSString *orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",orderSpec, signedString, @"RSA"];
//发送请求
[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) { NSLog(@"reslut = %@",resultDic); }];
@property(nonatomic, copy) NSString * partner; @property(nonatomic, copy) NSString * seller; @property(nonatomic, copy) NSString * tradeNO; @property(nonatomic, copy) NSString * productName; @property(nonatomic, copy) NSString * productDescription; @property(nonatomic, copy) NSString * amount; @property(nonatomic, copy) NSString * notifyURL; @property(nonatomic, copy) NSString * service; @property(nonatomic, copy) NSString * paymentType; @property(nonatomic, copy) NSString * inputCharset; @property(nonatomic, copy) NSString * itBPay; @property(nonatomic, copy) NSString * showUrl; @property(nonatomic, copy) NSString * rsaDate;//可选 @property(nonatomic, copy) NSString * appID;//可选 @property(nonatomic, readonly) NSMutableDictionary * extraParams;
- (NSString *)description { NSMutableString * discription = [NSMutableString string]; if (self.partner) { [discription appendFormat:@"partner=\"%@\"", self.partner]; } if (self.seller) { [discription appendFormat:@"&seller_id=\"%@\"", self.seller]; } if (self.tradeNO) { [discription appendFormat:@"&out_trade_no=\"%@\"", self.tradeNO]; } if (self.productName) { [discription appendFormat:@"&subject=\"%@\"", self.productName]; } if (self.productDescription) { [discription appendFormat:@"&body=\"%@\"", self.productDescription]; } if (self.amount) { [discription appendFormat:@"&total_fee=\"%@\"", self.amount]; } if (self.notifyURL) { [discription appendFormat:@"¬ify_url=\"%@\"", self.notifyURL]; } if (self.service) { [discription appendFormat:@"&service=\"%@\"",self.service];//mobile.securitypay.pay } if (self.paymentType) { [discription appendFormat:@"&payment_type=\"%@\"",self.paymentType];//1 } if (self.inputCharset) { [discription appendFormat:@"&_input_charset=\"%@\"",self.inputCharset];//utf-8 } if (self.itBPay) { [discription appendFormat:@"&it_b_pay=\"%@\"",self.itBPay];//30m } if (self.showUrl) { [discription appendFormat:@"&show_url=\"%@\"",self.showUrl];//m.alipay.com } if (self.rsaDate) { [discription appendFormat:@"&sign_date=\"%@\"",self.rsaDate]; } if (self.appID) { [discription appendFormat:@"&app_id=\"%@\"",self.appID]; } for (NSString * key in [self.extraParams allKeys]) { [discription appendFormat:@"&%@=\"%@\"", key, [self.extraParams objectForKey:key]]; } return discription; }