중국 고객들에게 인기 있는 디지털 지갑인 WeChat Pay에 대해 알아보세요. #
WeChat Pay는 중국의 인기 슈퍼앱인 WeChat에 통합된 디지털 지갑 역할을 합니다. 지난 몇 년 동안 국내외에서 중국 소비자와 소통하고자 하는 기업에게 필수적인 결제 솔루션으로 각광받고 있습니다. WeChat은 통합된 플랫폼 내에서 채팅, 제품 또는 서비스 검색, 결제를 원활하게 수행할 수 있는 편리함을 중국 쇼핑객에게 제공하면서 종합적인 생태계로 변모했습니다. 이러한 통합을 통해 쇼핑 경험은 한 곳에서 친구와 친근하게 대화하는 것처럼 쉬워졌습니다.
특징 #
고객 위치 | 중국 소비자 화교 중국인 여행자 |
---|---|
통화 처리 | CNY, GBP, USD, EUR, HKD |
결제 통화 | GBP, EUR, USD, HKD |
최소 거래 금액 | 제한 없음 |
최대 거래 금액 | 50,000 USD |
환불 | ✅ |
부분 환불 | ✅ |
여러 차례 부분 환불 | ✅ |
차지백 | ❌ |
하위 제품 #
결제 사례 | 제품 | 결제 시나리오 설명 |
---|---|---|
QR 코드 | 웹 결제 | 데스크톱 브라우저에서 결제 수단 판매자 결제로 WeChatPay를 선택하면 QR 코드가 표시됩니다. 그런 다음 구매자는 휴대폰에서 WeChat 앱을 열고 브라우저 페이지에 표시된 바코드를 스캔하여 결제를 완료합니다. |
QR 코드 | 빠른 결제 | 판매자는 판매 시점에 단말기에 QR 코드를 표시할 수 있으며, 쇼핑객은 휴대폰에서 WeChat 앱을 열어 QR 코드를 스캔하여 결제를 완료할 수 있습니다. |
모바일 H5 흐름 | H5 결제 | 모바일 브라우저에서 쇼핑객이 판매자 결제 시 결제 수단으로 WeChatPay를 선택하면 브라우저에서 WeChatPay 앱으로 리디렉션되어 결제를 완료한 후 판매자 브라우저로 다시 리디렉션됩니다. |
모바일 - 위챗 앱에서 | 공식 계정 | 일반적으로 중화권 시장에서 인기가 많은 판매자는 WeChat 소셜 사이트에 프로필 페이지를 구축하여 쇼핑객이 WeChat 소셜 사이트 환경 내에서 제품을 선택하고 결제를 완료하도록 유도하는 것을 고려할 수 있습니다. |
모바일 - 위챗 앱에서 | 미니 프로그램 | 공식 계정의 또 다른 버전인 미니 프로그램은 판매자가 더 많은 사용자 지정이 가능하고 쇼핑객이 해당 환경에서 제품을 선택하고 결제를 완료할 수 있는 WeChat 소셜 사이트 내의 웹사이트와 같은 것입니다. |
결제 흐름 #
QR 코드 #
모바일 H5 흐름 #
모바일 - 위챗 앱에서 #
통합 방법 #
결제 방법 열거 값입니다: wechat_pay
Wechat Pay에는 두 가지 통합 방법이 있습니다.
- 다이렉트 API
- 결제
통합 방법 | 위챗 페이 하위 프로덕션 | terminal_type 열거형 값 |
---|---|---|
다이렉트 API | 웹 결제 | 웹 |
다이렉트 API | 빠른 결제 | SCAN_CODE |
다이렉트 API | H5 결제 | WAP |
다이렉트 API | 공식 계정 결제 | 공식 계정 |
다이렉트 API | 미니 프로그램 | 미니 프로그램 |
통합 방법 | 위챗 페이 하위 프로덕션 | terminal_type 열거형 값 |
---|---|---|
결제 | 웹 결제 | 결제 시 단말기 유형을 식별할 필요가 없습니다. 결제 시 단말기에 따라 자동으로 QR 코드가 생성되거나 WeChat 앱으로 리디렉션됩니다. |
결제 | H5 결제 | 결제 시 단말기 유형을 식별할 필요가 없습니다. 결제 시 단말기에 따라 자동으로 QR 코드가 생성되거나 WeChat 앱으로 리디렉션됩니다. |
다이렉트 API #
결제 인텐트는 고객으로부터 결제를 수금하려는 의도를 나타내며 결제 프로세스의 라이프사이클을 추적하는 객체입니다. 서버에서 결제 인텐트를 생성하고 수금할 금액과 지원되는 통화를 지정하세요.
결제 인텐트 생성 #
직접 API 통합의 경우, 결제 인텐트를 생성하고 단 한 단계로 URL을 가져올 수 있습니다. 다음은 결제 인텐트 생성 데모입니다:
- 웹 결제
- H5 결제
- 빠른 결제
- 공식 계정 결제
웹 결제 #
요청
{
"amount":20,
"currency":"CNY",
"confirm":true,
"payment_method_options":{
"wechat_pay":{
"terminal_type":"WEB",
"os_type":"IOS",
"client_ip":"192.168.0.1"
}
},
"payment_method_data":{
"type":"WECHAT_PAY"
},
"return_url":"https://wooshpay.com"
}
응답
{
"id": "pi_1666625039547498496",
"object": "payment_intent",
"created": 1686189348000,
"livemode": false,
"통화": "CNY",
"금액": 20,
"status": "requires_action",
"client_secret": "pi_1666625039547498496_secret_qGj2VEg4khXSWkXvRI7Y3yZe",
"next_action": {
"type": "wechat_pay_display_qr_code",
"wechat_pay_display_qr_code": {
"image_data_url": "weixin://wxpay/bizpayurl?pr=lJhTByDzz"
}
},
"payment_method_types": [
"wechat_pay",
],
"confirmation_method": "자동",
"결제_방법_옵션": {
"wechat_pay": {
"terminal_type": "WEB",
"os_type": "IOS",
"client_ip": "192.168.0.1"
}
},
"return_url": "https://wooshpay.com",
"payment_method": "pm_1666625039430057984",
"capture_method": "automatic"
}
The 이미지_데이터_URL
에서 위챗페이_디스플레이_QR_코드
에서 next_action
링크를 열면 판매자가 해당 QR 코드를 생성할 수 있습니다. 그런 다음 해당 QR 코드를 사용하여 충전합니다.
H5 결제 #
요청
{
"금액": 20,
"통화": "CNY",
"confirm": true,
"payment_method_options": {
"wechat_pay": {
"terminal_type": "WAP",
"client_ip": "192.168.124.133" //고객의 모바일 IP
}
},
"payment_method_data": {
"type": "WECHAT_PAY"
},
"return_url": "yourwebsite"
}
응답
{
"id": "pi_1666625208749916160",
"object": "payment_intent",
"created": 1686189389000,
"livemode": false,
"currency": "CNY",
"amount": 20,
"status": "requires_action",
"client_secret": "pi_1666625208749916160_secret_BeEXcbvAQNUkrV9C6ZFjOamS",
"next_action": {
"type": "wechat_pay_redirect_to_web",
"wechat_pay_redirect_to_web": {
"url": "https://wx.tenpay.com/cgi-bin/mmpayweb-bin/checkmweb?prepay_id=wx08095629694611f41b32df91d6ea160000&package=3449031350&redirect_url=https%3A%2F%2Fwooshpay.com"
}
},
"payment_method_types": [
"wechat_pay"
],
"confirmation_method": "automatic",
"payment_method_options": {
"wechat_pay": {
"terminal_type": "WAP",
"os_type": "IOS",
"client_ip": "172.31.5.62"
}
},
"return_url": "https://wooshpay.com",
"payment_method": "pm_1666625208624087040",
"capture_method": "automatic"
}
The url
에서 WECHAT_PAY_REDIRECT_TO_WEB
에서 next_action
을 열 수 있으며, 링크에서 고객은 결제를 위해 위챗 앱으로 바로 이동하여 직접 return_url
결제 후
빠른 결제 #
요청
{
"amount":10,
"currency":"CNY",
"confirm":true,
"payment_method_options":{
"wechat_pay":{
"terminal_type":"SCAN_CODE",
"os_type":"IOS",
"client_ip":"192.168.0.1"
}
},
"payment_method_data":{
"type":"wechat_pay",
"wechat_pay":{
"payment_code":"132993614656096754"
}
},
"return_url":"https://yourweb.com"
}
응답
{
"id": "pi_1666627489012645888",
"object": "payment_intent",
"created": 1686189932000,
"livemode": false,
"통화": "CNY",
"금액": 10,
"status": "requires_action",
"client_secret": "pi_1666627489012645888_secret_t6oeKYYGb9egt3koNMsntfSg",
"payment_method_types": [
"wechat_pay"
],
"confirmation_method": "자동",
"결제_방법_옵션": {
"wechat_pay": {
"terminal_type": "SCAN_CODE",
"os_type": "IOS",
"client_ip": "192.168.0.1"
}
},
"return_url": "https://yourweb.com",
"payment_method": "pm_1666627488878428160",
"capture_method": "automatic"
}
비밀번호 없는 결제는 바로 결제가 가능하며, 그렇지 않은 경우 고객이 휴대폰에 비밀번호, 지문 등을 입력해야 결제할 수 있습니다.
공식 계정 결제 #
요청
{
"금액": 20,
"통화": "CNY",
"confirm": true,
"payment_method_options": {
"wechat_pay": {
"terminal_type": "official_account",
"client_ip": "192.168.0.1",
"openid": ""
}
},
"payment_method_data": {
"type": "WECHAT_PAY"
}
}
응답
{
"id": "pi_1666626536515567616",
"object": "payment_intent",
"created": 1686189705000,
"livemode": false,
"통화": "CNY",
"금액": 20,
"status": "requires_payment_method",
"client_secret": "pi_1666626536515567616_secret_CcrukFKgxbPp7UEAxodLlNRD",
"last_payment_error": {
"code": "payment_method_provider_decline",
"메시지": "서비스 오류입니다. 다시 시도해 주세요.",
"payment_method": {
"id": "pm_1666626536389738496",
"object": "payment_method",
"created": 1686189705000,
"livemode": false,
"type": "WECHAT_PAY",
"청구_세부정보": {}
},
"decline_code": "invalid_request_error"
},
"payment_method_types": [
"WECHAT_PAY"
],
"confirmation_method": "자동",
"결제_방법_옵션": {
"wechat_pay": {
"openid": "",
"terminal_type": "공식 계정",
"client_ip": "192.168.0.1"
}
},
"payment_method": "pm_1666626536389738496",
"capture_method": "automatic"
}
WECHAT_PAY_공식_계정_파라미터
에서 next_action
에는 프런트엔드에서 사용해야 하는 몇 가지 매개변수가 포함되어 있습니다. 다음은 매개변수 사용 방법에 대한 예시입니다. js 예제
function onBridgeReady(){
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
"appId":"wx7a154c094f74e84f",
"timeStamp":"1682239457",
"nonceStr":"kLRl3fI6FiP8PXxNNAiytwuQBdoCWXvZ",
"package":"prepay_id=wx23164417189051acf8825c57d275230000",
"signType":"MD5",
"paySign":"703868ed93842f83c9dff4d80d0cad67"
},
function(res){
if(res.err_msg == "get_brand_wcpay_request:ok" ) {} // Using the above method to judge the front-end return, the WeChat team solemnly reminds: res.err_msg will return ok after the user's payment is successful, but it does not guarantee that it is absolutely reliable.
}
);
}
if (typeof WeixinJSBridge == "undefined"){
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
}
}else{
onBridgeReady();
}
미니 프로그램 #
요청
{
"금액": 20,
"통화": "GBP",
"confirm": true,
"payment_method_options": {
"wechat_pay": {
"terminal_type": "mini_program",
"client_ip": "192.168.0.1",
"openid": "ojt**********QnCY"
}
},
"payment_method_data": {
"type": "WECHAT_PAY"
}
}
응답
{
"id": "pi_1684807723566235648",
"object": "payment_intent",
"created": 1690524438000,
"livemode": true,
"currency": "GBP",
"금액": 20,
"status": "requires_action",
"client_secret": "pi_1684807723566235648_secret_V3rhLjnidzwNnc7UomZJzzxc",
"next_action": {
"type": "wechat_pay_mini_program_params",
"wechat_pay_mini_program_params": {
"appId": "***********",
"timeStamp": "1690524439",
"nonceStr": "VVdQaFzG9LjOSNyGNLFbt7NZAn2oE87z",
"signType": "MD5",
"paySign": "9d0a90a35935d71d7a0f5f33689030fe",
"package": "prepay_id=wx281407195596079e2b5253415099630000"
}
},
"payment_method_types": [
"WECHAT_PAY",
],
"confirmation_method": "자동",
"결제_방법_옵션": {
"wechat_pay": {
"openid": "**********",
"terminal_type": "mini_program",
"client_ip": "192.168.0.1"
}
},
"payment_method": "pm_1684807723448795136",
"capture_method": "automatic"
}
결제 #
WooshPay에서 호스팅하는 결제를 통해 WeChat Pay를 사용할 수도 있습니다. 결제를 지원하려면 결제 세션이 다음 조건을 모두 충족해야 합니다:
- 모든 품목의 가격은 동일한 통화로 표시되어야 합니다. 서로 다른 통화로 된 품목이 있는 경우 각 통화에 대해 별도의 결제 세션을 생성합니다.
- 일회성 줄 항목만 사용할 수 있습니다.
결제 수단으로 위챗페이 사용 설정하기
새 결제 세션을 생성할 때는 다음을 수행해야 합니다:
다음 목록에 Wechat Pay를 추가합니다. 결제 방법 유형
. 모든 라인 항목
동일한 통화를 사용합니다.
세션 만들기 #
요청
{
"cancel_url": "https://wooshpay.com",
"mode": "결제",
"success_url": "https://wooshpay.com",
"payment_method_types": [
"wechat_pay"
],
"line_items": [
{
"price_data": {
"currency": "CNY",
"단위_금액": 100,
"product_data": {
"name": "펑리",
"url": "www.baidu.com"
}
},
"수량": 1
}
]
}
응답
{
"id": "cs_1666627733867724800",
"object": "checkout.session",
"created": 1686189991000,
"livemode": false,
"통화": "CNY",
"customer": "",
"mode": "결제",
"status": "open",
"url": "https://checkouttest.wooshpay.com/pay/cs_test_1666627733867724800?key=pk_test_NTE1OTU5NzQ3NTQ2MTM5ODkzNzcxOktFZ0xlam1KbUxUb2gyUUNqWVVoaGpDSjE2NjkzNDUwMDgxMTE=",
"cancel_url": "https://wooshpay.com",
"line_items": {
"object": "목록",
"데이터": [
{
"id": "li_1666627733993553920",
"object": "item",
"통화": "CNY",
"설명": "펑리",
"price": {
"id": "price_1666627734022914048",
"object": "가격",
"created": 1686189991000,
"livemode": false,
"active": true,
"통화": "CNY",
"product": {
"id": "prod_1666627734064857088",
"object": "제품",
"created": 1686189991000,
"livemode": false,
"active": true,
"name": "fengli",
"url": "www.baidu.com",
"updated": 1686189991000
},
"type": "one_time",
"단위_금액": 100,
"billing_scheme": "per_unit"
},
"수량": 1,
"amount_subtotal": 100,
"amount_total": 100
}
]
},
"payment_intent": "pi_1666627734450733056",
"payment_method_types": [
"wechat_pay"
],
"payment_status": "미결제",
"success_url": "https://wooshpay.com",
"amount_subtotal": 100,
"금액_총액": 100,
"청구지_주소_수집": "auto",
"expires_at": 1686276390865,
"payment_link": "",
"client_secret": "pi_1666627734450733056_secret_jajX5Fe4Qlp6VGEm0ftP1wcZ"
}
URL을 통해 결제 카운터에 액세스하고 WeChat 결제를 선택할 수 있습니다. 클라이언트가 웹 페이지인 경우 QR 코드가 생성되며 코드를 스캔하여 결제할 수 있습니다. 클라이언트가 모바일 단말기인 경우 결제를 위해 WeChat 앱으로 바로 이동합니다.
다음 단계 #
필요에 따라 통합에 더 많은 기능을 추가할 수 있습니다.
웹훅 만들기 #
WooshPay 계정에서 이벤트를 수신하여 연동이 자동으로 반응을 트리거할 수 있도록 합니다. 활성화된 이벤트와 URL에 주로 초점을 맞춘 웹훅을 생성합니다.
환불 생성 #
환불을 생성하여 고객에게 금액을 상환합니다. 부분 환불도 수행할 수 있지만 모든 결제 방법에서 부분 환불을 지원하는 것은 아닙니다. 부분 환불은 원래 거래 금액의 일부만 환불하는 것입니다.