मैं फायरबेस क्लाउड फ़ंक्शंस के माध्यम से भुगतान को संभालने के लिए अपने कोणीय 7 एप्लिकेशन में स्ट्राइप का उपयोग कर रहा हूं। मैं वर्तमान में सदस्यता भुगतान बनाने का प्रयास कर रहा हूं। हालांकि, जब मैं निम्नलिखित फ़ंक्शन को आज़माता हूं और कॉल करता हूं (संपूर्ण सदस्यता सेटअप के लिए पूर्व-अनुरोध के प्रकार के रूप में);

import * as Stripe from 'stripe';
const stripe = new Stripe('pk_test_....');

//Create payment method for customer
const {paymentMethod, createPaymentMethodError} = await stripe.createPaymentMethod({
    type: 'card',
    card: cardElementObj.card,
    billing_details: {
      name: userName,
      email: firebaseUserEmail
    },
  });

त्रुटि:

Property 'createPaymentMethod' does not exist on type 'Stripe'.

मेरे पास मेरे नोड_मॉड्यूल्स (संस्करण 7.14.0) में स्ट्राइप पैकेज स्थापित है।

पैकेज.जेसन विन्यास:

{
  "name": "functions",
  "scripts": {
    "lint": "tslint --project tsconfig.json",
    "build": "tslint -p tslint.json && tsc",
    "serve": "npm run build && firebase serve --only functions",
    "shell": "npm run build && firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "8"
  },
  "main": "lib/index.js",
  "dependencies": {
    "@types/stripe": "^7.13.11",
    "firebase": "^7.4.0",
    "firebase-admin": "^8.6.0",
    "firebase-functions": "^3.3.0",
    "moment": "^2.24.0",
    "stripe": "^7.14.0"
  },
  "devDependencies": {
    "@types/stripe-checkout": "^1.0.3",
    "@types/stripe-v3": "^3.1.9",
    "firebase-functions-test": "^0.1.6",
    "tslint": "^5.12.0",
    "typescript": "^3.2.2"
  },
  "private": true
}

किसी भी मदद की सराहना की जाती है! अग्रिम में धन्यवाद।

0
Idris.AH 6 पद 2019, 19:25

1 उत्तर

सबसे बढ़िया उत्तर

स्ट्राइप टाइपस्क्रिप्ट पैकेज प्रदान नहीं करता है, इसलिए इसे काम करने के लिए आपको अपने package.json में उन निर्भरताओं की आवश्यकता नहीं है। बजाय:

सबसे पहले, सुनिश्चित करें कि आपके पास पृष्ठ पर शामिल स्क्रिप्ट है। ध्यान दें कि उनके दस्तावेज़ के मुताबिक, इसे हमेशा < से लोड किया जाना चाहिए a href="https://js.stripe.com/v3/" rel="nofollow noreferrer">https://js.stripe.com/v3/।

फिर, टाइपस्क्रिप्ट कोड को इस तरह संरचित किया जाना चाहिए ताकि उपयोग करने के लिए Stripe का उदाहरण प्राप्त हो सके।

declare var Stripe : any;

@Component({
  selector    : 'payment-form',
  templateUrl : 'payment-form.component.html',
})
export class PaymentFormComponent implements OnInit {
  stripe: any;

  ngOnInit() {
    this.stripe = new Stripe(environment.stripeApiKey);
  }

  mySubmitFunction() {
    this.stripe.createPaymentMethod(...);
  }
}

टाइपस्क्रिप्ट में जावास्क्रिप्ट पुस्तकालयों का उपयोग करते समय घटक परिभाषा के बाहर चर घोषित करने की यह सामान्य संरचना आम है। उदाहरण के लिए, Facebook या Google OAuth लाइब्रेरी का उपयोग करते समय आपको समान चरणों का पालन करना होगा।

1
sawprogramming 6 पद 2019, 19:58