2015-09-25 44 views
0

我很难搞清楚如何以编程方式从iOS应用程序执行此操作。使用iOS中的条纹卡从现有客户执行收费

im使用(除了其他)从GitHub以下类: https://github.com/hybrdthry911/ELStripe

类别:ELCharge.m

+(ELCharge *)charge{ 
    return [[ELCharge alloc]init]; 
} 

(*****************code in between ************************) 

//Will attempt to charge either a customer or card. Exactly one must exist 
per charge. If multiple or neither exist an exception will be raised. 
//Warning: This is the final step it will APPLY A CHARGE TO THE 
ACCOUNT. 

-(void)createChargeWithCompletion:(ELChargeCompletionBlock)handler{ 
    [ELCharge createCharge:self completion:handler]; 
} 

+(void)createCharge:(ELCharge *)charge completion 
(ELChargeCompletionBlock)handler{ 
NSError *chargeError; 
    if (![charge validForProcessingWithError:&chargeError]) { 
      handler(nil,chargeError); 
      return; 
    } 

    if (!chargeError) { 
      [ELStripe executeStripeCloudCodeWithMethod:@"POST"  
      prefix:@"charges" parameters:[ELCharge 
      dictionaryForCreatingCharge:charge] completionHandler:^(id 
      jsonObject, NSError *error) { 
      handler([ELCharge 
      chargeFromParseStripeDictionary:jsonObject],error); 
     }]; 
    } 
} 

在iOS的类,我做的,以创建一个以下测试费用:

//create an automatic charge in stripe from an existing customer with card 
attached to him 
-(void) executeChargeInStripe:(UIButton*)sender 
{ 

    ELCharge *charge = [ELCharge charge]; 

    //Assign the charge properties 
    charge.customerID = @"cus_72xvQI6Q5IC9it"; 
    charge.currency = @"USD"; 
    NSNumber *chargeAmount = [NSNumber numberWithInt:111]; 
    charge.amountInCents = chargeAmount; 


//Call ChargeMethod from Github Framework 
[ELCharge createCharge:charge completion:^(ELCharge *charge, NSError 
*error) { 
    if (!error) { 
    //code for normal handling 
     NSLog(@"Charge has been made successfully"); 
    } else { 
     // error code handling 
     NSLog(@"Charge NOT made"); 

    } 
}]; 

} 

我把这个传给下面的代码:

Parse.Cloud.define("stripeHTTPRequest", function(request, response) 
{ 
//Check for valid pre/suf/postfixes, if they are not there do not include  
them. 
var prefix = request.params["prefix"]; 
var suffix = ""; 
var postfix = ""; 
var secondPostfix = ""; 
if (!isEmpty(request.params["suffix"])) suffix = 
    '/'+request.params['suffix']; 
if (!isEmpty(request.params["postfix"])) postfix = 
    '/'+request.params['postfix']; 
if (!isEmpty(request.params["secondPostfix"])) secondPostfix = 
    '/'+request.params['secondPostfix']; 

//call from parse to stripe done by http request as parse/stripe api 
    uncomplete 
    Parse.Cloud.httpRequest(
    { 
     method: request.params["method"], 
     //Create URL from base url and pre/suf/postfixes 
     url: 'https://'+STRIPE_API_BASE_URL + prefix + suffix + postfix + 
       secondPostfix, 
       headers: { 
        'Authorization': "Bearer " + STRIPE_SECRET_KEY 
         }, 
       params:request.params["params"], 
       success: function(httpResponse) 
      { 
       //response text is a json dictionary 
       response.success(httpResponse.text); 
      }, 
     error: function(httpResponse) 
     { 
      response.error(httpResponse.text); 
     } 
    }); 
}); 

林现在得到以下错误: 费没有作出(由我创建的IOS类我的错误消息)。

我真的很惊讶,我没有在Parse Cloud或Stripe中收到错误。 例如,如果我使用已经使用的令牌而不是客户ID,则两者都有错误。所以连接似乎工作我假设,也许有什么我在iOS类错了。 谢谢!

+0

你能否详细说明一下。你记录了错误吗?在控制台日志中解析方面出现错误吗? – hybrdthry911

回答

0

您是否已将Parse JavaScript SDK恢复到1.5.0?不再支持1.5.0以上的任何内容。