MPGS(万事达卡):如何标记交易(如何创建令牌)?
MPGS (mastercard): How to tokenize a transaction (how to create token)?
我正在尝试使用 MPGS 创建令牌。
我正在遵循此指南:
https://sample-sub.domain.mastercard.com/api/documentation/integrationGuidelines/supportedFeatures/pickAdditionalFunctionality/tokenization/tokenization.html?locale=en_US#x_tokenConfiguration
在 "Token Operations" > "Tokenize" 部分,它说:
You can use this operation to create or update a token by storing
payment details against the token. ...
我发布这篇文章是为了帮助像我一样对 MPGS 感到沮丧的人。我遇到了一系列问题,并多次扯掉我的头发。所以这是我面临的问题以及如何解决它们(我被问题 #4 困住了)。
问题 #1: 凭据无效。
修正:确保你打的是正确的URL。
https://示例子域.mastercard.com/..
https://some.other-示例.mastercard.com/..
https://百万种可能性。mastercard.com/..
甚至文档指南 link 也有这些相同的子域,因此请确保您输入的是正确的 URL,并确保您遵循的是正确的文档 link.
问题 #2: 参数无效,或者尽管您提供了参数但服务器仍要求提供参数。
修复: 如果使用 Postman,请确保将 "Body" > "raw" 中的参数设置为 JSON,像这样:
{
"sourceOfFunds": {
"provided": {
"card": {
"expiry": {
"month": "05",
"year": "21"
},
"number": "5123456789012346"
}
},
"type": "CARD"
}
}
问题 #3: 需要授权
修复: 如果使用 Postman,请单击 "Authorization",将 "Type" 设置为 Basic Auth,对于 "Username" 将其设置为 merchant.YOUR_MERCHANT_ID,对于 "Password" 将其设置为 YOUR_API_PASSWORD
问题 #4(卡在这里):值“9999999999999999”无效。不得提供卡令牌
方法:PUT
URL: https://test-my.sample.gateway.mastercard.com/api/rest/version/46/merchant/MY_MERCHANT_ID/token/9999999999999999
授权:在授权选项卡中正确设置
正文 > 原始:
{
"sourceOfFunds": {
"provided": {
"card": {
"expiry": {
"month": "05",
"year": "21"
},
"number": "5123456789012346"
}
},
"type": "CARD"
}
}
回复:
{
"error": {
"cause": "INVALID_REQUEST",
"explanation": "Value '9999999999999999' is invalid. Card token must not be supplied",
"field": "tokenid",
"validationType": "INVALID"
},
"result": "ERROR"
}
问: 不确定如何对交易进行代币化……?!我被 问题 #4.
困住了
好吧,终于想通了。 MPGS 有两种获取 create/update 代币的方式:
- Tokenization where YOU provide the token(注意:PUT方法)
- Tokenization where MPGS generate the token for you(注意:POST方法)
它们非常相似。
我使用了第二个选项。
注意:这是POST方法!!
方法:POST
URL: https://SUBDOMAIN_YOU_SHOULD_BE_USING.mastercard.com/api/rest/version/50/merchant/YOUR_MERCHANT_ID/代币
在邮递员中,设置授权(如问题中所述,在问题#3中)。
要发送的示例数据(在 postman 中,这应该在 Body > raw 中):
{
"sourceOfFunds": {
"provided": {
"card": {
"expiry": {
"month": "05",
"year": "21"
},
"number": "5123456789012346"
}
},
"type": "CARD"
}
}
响应示例:
{
"repositoryId": "1000000000002",
"response": {
"gatewayCode": "BASIC_VERIFICATION_SUCCESSFUL"
},
"result": "SUCCESS",
"sourceOfFunds": {
"provided": {
"card": {
"brand": "MASTERCARD",
"expiry": "0521",
"fundingMethod": "CREDIT",
"issuer": "BANCO DEL PICHINCHA, C.A.",
"number": "512345xxxxxx2346",
"scheme": "MASTERCARD"
}
},
"type": "CARD"
},
"status": "VALID",
"token": "9717501974559694",
"usage": {
"lastUpdated": "2019-02-25T09:36:54.928Z",
"lastUpdatedBy": "1015",
"lastUsed": "2019-02-25T09:36:54.928Z"
},
"verificationStrategy": "BASIC"
}
我正在尝试使用 MPGS 创建令牌。
我正在遵循此指南:
https://sample-sub.domain.mastercard.com/api/documentation/integrationGuidelines/supportedFeatures/pickAdditionalFunctionality/tokenization/tokenization.html?locale=en_US#x_tokenConfiguration
在 "Token Operations" > "Tokenize" 部分,它说:
You can use this operation to create or update a token by storing payment details against the token. ...
我发布这篇文章是为了帮助像我一样对 MPGS 感到沮丧的人。我遇到了一系列问题,并多次扯掉我的头发。所以这是我面临的问题以及如何解决它们(我被问题 #4 困住了)。
问题 #1: 凭据无效。
修正:确保你打的是正确的URL。
https://示例子域.mastercard.com/..
https://some.other-示例.mastercard.com/..
https://百万种可能性。mastercard.com/..
甚至文档指南 link 也有这些相同的子域,因此请确保您输入的是正确的 URL,并确保您遵循的是正确的文档 link.
问题 #2: 参数无效,或者尽管您提供了参数但服务器仍要求提供参数。
修复: 如果使用 Postman,请确保将 "Body" > "raw" 中的参数设置为 JSON,像这样:
{
"sourceOfFunds": {
"provided": {
"card": {
"expiry": {
"month": "05",
"year": "21"
},
"number": "5123456789012346"
}
},
"type": "CARD"
}
}
问题 #3: 需要授权
修复: 如果使用 Postman,请单击 "Authorization",将 "Type" 设置为 Basic Auth,对于 "Username" 将其设置为 merchant.YOUR_MERCHANT_ID,对于 "Password" 将其设置为 YOUR_API_PASSWORD
问题 #4(卡在这里):值“9999999999999999”无效。不得提供卡令牌
方法:PUT
URL: https://test-my.sample.gateway.mastercard.com/api/rest/version/46/merchant/MY_MERCHANT_ID/token/9999999999999999
授权:在授权选项卡中正确设置
正文 > 原始:
{
"sourceOfFunds": {
"provided": {
"card": {
"expiry": {
"month": "05",
"year": "21"
},
"number": "5123456789012346"
}
},
"type": "CARD"
}
}
回复:
{
"error": {
"cause": "INVALID_REQUEST",
"explanation": "Value '9999999999999999' is invalid. Card token must not be supplied",
"field": "tokenid",
"validationType": "INVALID"
},
"result": "ERROR"
}
问: 不确定如何对交易进行代币化……?!我被 问题 #4.
困住了好吧,终于想通了。 MPGS 有两种获取 create/update 代币的方式:
- Tokenization where YOU provide the token(注意:PUT方法)
- Tokenization where MPGS generate the token for you(注意:POST方法)
它们非常相似。
我使用了第二个选项。
注意:这是POST方法!!
方法:POST
URL: https://SUBDOMAIN_YOU_SHOULD_BE_USING.mastercard.com/api/rest/version/50/merchant/YOUR_MERCHANT_ID/代币
在邮递员中,设置授权(如问题中所述,在问题#3中)。
要发送的示例数据(在 postman 中,这应该在 Body > raw 中):
{
"sourceOfFunds": {
"provided": {
"card": {
"expiry": {
"month": "05",
"year": "21"
},
"number": "5123456789012346"
}
},
"type": "CARD"
}
}
响应示例:
{
"repositoryId": "1000000000002",
"response": {
"gatewayCode": "BASIC_VERIFICATION_SUCCESSFUL"
},
"result": "SUCCESS",
"sourceOfFunds": {
"provided": {
"card": {
"brand": "MASTERCARD",
"expiry": "0521",
"fundingMethod": "CREDIT",
"issuer": "BANCO DEL PICHINCHA, C.A.",
"number": "512345xxxxxx2346",
"scheme": "MASTERCARD"
}
},
"type": "CARD"
},
"status": "VALID",
"token": "9717501974559694",
"usage": {
"lastUpdated": "2019-02-25T09:36:54.928Z",
"lastUpdatedBy": "1015",
"lastUsed": "2019-02-25T09:36:54.928Z"
},
"verificationStrategy": "BASIC"
}