iOS
ऐप में खरीदारी
खोज…
स्विफ्ट 2 में सिंगल आईएपी
आईट्यून्सकनेक्ट में IAP बनाने के बाद:
उस व्यू कंट्रोलर में जिसे आप खरीदना चाहते हैं
import StoreKit
और संबंधित प्रतिनिधियों को जोड़ें
class ViewController: UIViewController, SKProductsRequestDelegate, SKPaymentTransactionObserver {
iTunesConnect से उत्पाद आईडी के साथ एक चर घोषित करें
var product_id: NSString?
override func viewDidLoad() {
product_id = "YOUR_PRODUCT_ID"
super.viewDidLoad()
SKPaymentQueue.defaultQueue().addTransactionObserver(self)
//Check if product is purchased
if (NSUserDefaults.standardUserDefaults().boolForKey("purchased")){
// Hide ads
adView.hidden = true
} else {
print("Should show ads...")
}
}
IAP को खरीदने के लिए एक फ़ंक्शन के लिए एक बटन तार
@IBAction func unlockAction(sender: AnyObject) {
print("About to fetch the product...")
// Can make payments
if (SKPaymentQueue.canMakePayments())
{
let productID:NSSet = NSSet(object: self.product_id!);
let productsRequest:SKProductsRequest = SKProductsRequest(productIdentifiers: productID as! Set<NSString>);
productsRequest.delegate = self;
productsRequest.start();
println("Fetching Products");
}else{
print("Can't make purchases");
}
}
और यहाँ कुछ सहायक विधियाँ हैं
func buyProduct(product: SKProduct){
println("Sending the Payment Request to Apple");
let payment = SKPayment(product: product)
SKPaymentQueue.defaultQueue().addPayment(payment);
}
प्रतिनिधि विधियाँ जो घोषित की जानी चाहिए
func productsRequest (request: SKProductsRequest, didReceiveResponse response: SKProductsResponse) {
let count : Int = response.products.count
if (count>0) {
var validProduct: SKProduct = response.products[0] as SKProduct
if (validProduct.productIdentifier == self.product_id) {
print(validProduct.localizedTitle)
print(validProduct.localizedDescription)
print(validProduct.price)
buyProduct(validProduct);
} else {
print(validProduct.productIdentifier)
}
} else {
print("nothing")
}
}
func request(request: SKRequest!, didFailWithError error: NSError!) {
print("Error Fetching product information");
}
func paymentQueue(_ queue: SKPaymentQueue,
updatedTransactions transactions: [SKPaymentTransaction])
{
print("Received Payment Transaction Response from Apple");
for transaction:AnyObject in transactions {
if let trans:SKPaymentTransaction = transaction as? SKPaymentTransaction{
switch trans.transactionState {
case .Purchased:
print("Product Purchased");
SKPaymentQueue.defaultQueue().finishTransaction(transaction as! SKPaymentTransaction)
// Handle the purchase
NSUserDefaults.standardUserDefaults().setBool(true , forKey: "purchased")
adView.hidden = true
break;
case .Failed:
print("Purchased Failed");
SKPaymentQueue.defaultQueue().finishTransaction(transaction as! SKPaymentTransaction)
break;
case .Restored:
print("Already Purchased");
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
// Handle the purchase
NSUserDefaults.standardUserDefaults().setBool(true , forKey: "purchased")
adView.hidden = true
break;
default:
break;
}
}
}
}
और फिर एप्लिकेशन खरीद में गैर-उपभोज्य को पुनर्स्थापित करने के लिए कोड
if (SKPaymentQueue.canMakePayments()) {
SKPaymentQueue.defaultQueue().restoreCompletedTransactions()
}
ITunesConnect में सेट अप करें
ITunesConnect में , उस ऐप का चयन करें जिसे आप IAP को जोड़ना चाहते हैं।
सुविधाओं पर क्लिक करें और आप इसे देखेंगे:
प्लस पर क्लिक करें। फिर आपको चयन करना होगा कि आप किस प्रकार का IAP बनाना चाहते हैं।
फिर आपको अपने IAP के लिए सारी जानकारी भरनी होगी।
यदि आपको कोई परेशानी है तो आप IAP सेट अप गाइड से परामर्श कर सकते हैं।
किसी IAP के लिए उपयोगकर्ता को खरीदने / सदस्यता लेने के लिए सबसे बुनियादी कदम
मान लें कि आप productID
जानते हैं:
प्रथम
import StoreKit
फिर अपने कोड में
let productID: Set = ["premium"]
let request = SKProductsRequest(productIdentifiers: productID)
request.delegate = self
request.start()
और SKProductsRequestDelegate
:
func productsRequest(request: SKProductsRequest, didReceiveResponse response: SKProductsResponse) {
if response.products.count > 0 {
let product = response.products[0]
let payment = SKPayment(product: product)
SKPaymentQueue.defaultQueue().addPayment(payment)
}
}