条纹连接 Python

Stripe Connect Python

尝试稍微解决这个问题,条带连接回调函数中的一切都有效,我可以再次为我的用户保存条带用户 ID,我想将条带用户 ID 保存为相关的配置文件模型,但不确定如何保存从 user=request.user 获取该模型。任何建议都会有很大的帮助。

class CompanyUser(models.Model):
    email = models.OneToOneField(CustomUser, on_delete=models.CASCADE)
    company_name = models.CharField(max_length=50, null=True, blank=True)
    business_owner = models.CharField(max_length=50, null=True, blank=True)
    phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone number must be entered in the format: '+999999999'. Up to 15 digits allowed.")
    phone_number = models.CharField(validators=[phone_regex], max_length=15, blank=True) # validators should be a list
    stripe_user_id = models.CharField(max_length=120, null=True, blank=True)



def stripe_callback(request):
    client_secret = STRIPE_API_KEY
    user = request.user
    code = request.GET.get('code', '')
    data = {
        'grant_type': 'authorization_code',
        'client_secret': 'sk_test_5SLLtqWFDTqzdbYmBz4XZpSX',
        'client_id': 'ca_ANdfv3rlKvpOU3rDglk6qoXuBYqGYiq5',
        'code': code,
    } 
    url = 'https://connect.stripe.com/oauth/token'
    resp= requests.post(url, params=data)  
    stripe_payload = json.loads(resp.text)
    stripe_user_id = stripe_payload['stripe_user_id']
    user.stripe_user_id = stripe_user_id 
    user.save()

这很有效,所以发布它可能会对其他人有所帮助,感谢您在下面的评论中对 dirkgroten 的评价。

 def stripe_callback(request):

    client_secret = STRIPE_API_KEY
    # the temporary code returned from stripe
    user = request.user.companyuser
    code = request.GET.get('code', '')
    # identify what we are going to ask for from stripe
    data = {
        'grant_type': 'authorization_code',
        'client_secret': 'sk_test_secretstuff',
        'client_id': 'ca_secretstuff',
        'code': code,
    }
    # Get the access_token using the code provided
    url = 'https://connect.stripe.com/oauth/token'
    resp= requests.post(url, params=data)

    stripe_payload = json.loads(resp.text)

    print(stripe_payload)

    stripe_user_id = stripe_payload['stripe_user_id']

    user.stripe_user_id = stripe_user_id
    print(stripe_user_id)
    user.save()